文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
本地 docker 实时调试
通过微信云托管 VSCode 插件,可以实现实时开发,即代码变动时,不需要重新构建和启动容器,即可查看变动后的效果。
选择 Live Coding
右键点击需要调试的容器,选择 Live Coding
,将自动生成 Dockerfile.development
和 docker-compose.yml
2 个文件并启动容器。
如果生成失败,我们需要自行配置
开发模式的 docker-compose.yml
# 开发模式的 docker-compose.yml # 实时开发将使用项目目录下的 docker-compose.yml 将当前目录映射到容器中。 # 大多数情况下,插件将根据项目的 Dockerfile 自动生成本文件,不需要手动编写。 version: '3' services: app: build: context: . # 构建上下文 dockerfile: Dockerfile.development volumes: - .:/app # 需要映射的目录(即代码目录) - /app/node_modules # 映射 node_modules 目录,如果有构建产物与代码目录同级,需要单独映射避免无法运行 ports: - 27081:9000 # 监听端口,主机端口:容器端口 修改为 koa 服务端口 container_name: wxcloud_wxcloud-debug-koa # 容器名称 labels: # 容器标签,一般不需改动 - wxPort=27082 - hostPort=27081 - wxcloud=wxcloud-debug-koa - role=container environment: # 使用本地调试 MySQL 时,需要填入如下环境变量,并启动 MySQL 代理服务 - MYSQL_USERNAME= - MYSQL_PASSWORD= - MYSQL_ADDRESS= networks: default: external: name: wxcb0 # 容器网络打通,一般不需改动
修改端口 9000
ports: - 27081:9000 # 监听端口,主机端口:容器端口 修改为 koa 服务端口
实时开发使用项目目录下的 Dockerfile.development
# Dockerfile.development # 实时开发使用项目目录下的 Dockerfile.development 作为开发期间的容器的 Dockerfile # 大多数情况下,插件将根据项目的 Dockerfile 自动生成本文件,不需要手动编写。 # 开发模式的 Dockerfile 与正式模式的 Dockerfile 的区别在于: # 单阶段构建 # 将编译命令转换为启动命令,如 Spring Boot 模板的 mvn package 会转换为 spring-boot:run # 拉取实时开发的工具套件,安装到 /usr/bin 下 # 通过实时开发工具套件启动用户程序,在代码发生更改时,自动重启进程。 # Auto-generated by weixin cloudbase vscode extension FROM ccr.ccs.tencentyun.com/weixincloud/wxcloud-livecoding-toolkit:latest AS toolkit FROM node:lts-slim COPY --from=toolkit nodemon /usr/bin/nodemon # 设置时区 RUN ln -fs /usr/share/zoneinfo/${TZ} /etc/localtime && echo ${TZ} > /etc/timezone && dpkg-reconfigure --frontend noninteractive tzdata && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY package*.json ./ # --only=production 只安装生产环境的依赖 RUN npm install --only=production && npm install pm2 -g COPY . ./ # 修改 nest 启动入口 node bin/www CMD [ "nodemon", "-x", "node bin/www", "-w", "/app", "-e", "java, js, mjs, json, ts, cs, py, go" ]
修改 koa 启动入口 node www/bin
启动实时服务
修改本地代码,不用重启容器即可查看效果
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论