返回介绍

本地 docker 实时调试

发布于 2024-01-20 01:44:38 字数 2761 浏览 0 评论 0 收藏 0

通过微信云托管 VSCode 插件,可以实现实时开发,即代码变动时,不需要重新构建和启动容器,即可查看变动后的效果。

选择 Live Coding

右键点击需要调试的容器,选择 Live Coding ,将自动生成 Dockerfile.developmentdocker-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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文