-
Notifications
You must be signed in to change notification settings - Fork 702
4. 服务启动模式
安装部署 CozeLoop 社区版时,默认使用开发模式,此模式下修改后端文件无需重新部署服务。你也可以参考本文档选择其他模式启动服务。
开发模式下可以使用热部署。
- 修改后端文件(
/backend下的文件)后,业务 Docker 会自动重新编译后端代码并重新启动,无需重新拉起 Docker。 - 修改前端文件后,需要使用
dev_reload.sh去触发前端重新构建或者重新拉起服务。
参考以下步骤,使用开发模式安装部署 CozeLoop 社区版:
-
执行以下命令,使用 Docker Compose 快速部署 CozeLoop 社区版。
# 方式一:启动服务,默认为开发模式 docker compose up --build # 方式二:安装命令加上RUN_MODE=dev,表示指定开发模式 RUN_MODE=dev docker compose up --build # 方式三:指定开发模式,并限制安装进程在后台运行 RUN_MODE=dev docker compose up --build -d
-
首次启动需要拉取镜像、构建本地镜像,可能耗时较久,请耐心等待。部署过程中,你会看到以下日志信息。如果回显信息中”提示后端构建完成“,表示 CozeLoop 已成功启动。
如果修改后端文件,业务 Docker 会自动重新编译后端代码并重新启动,例如:
调试模式下可以使用远程单步调试,即可以在本地使用 VSCode 或者 GoLand 等 IDE 进行远程调试。调试模式下,服务端能看到服务启动的日志。
- 在本地部署服务时,如果系统为 macOS 且搭载 M 系列芯片,本地调试可能会失败。
- 调试模式需要保证本地代码和部署侧代码一致。
使用调试模式安装部署 CozeLoop 社区版:
# 方式一:安装命令加上RUN_MODE=debug,表示指定调试模式
RUN_MODE=debug docker compose up --build
# 方式二:指定调试模式,并限制安装进程在后台运行
RUN_MODE=debug docker compose up --build -d启动成功后可以看到如下日志信息:
以 GoLand 为例,参考以下步骤进行远程调试。
- 在 GoLand 新建一个 Debug 选项,选择 Go Remote。
- 根据你的环境填写相关信息,并单击应用。
主机指启动服务的 IP;服务端口默认为 40000。
发布模式就是正常启动服务模式,不再支持热部署和单步调试,属于稳定运行服务。
# 方式一:安装命令加上RUN_MODE=release,表示指定发布模式
RUN_MODE=release docker compose up --build
# 方式二:指定发布模式,并限制安装进程在后台运行
RUN_MODE=release docker compose up --build -d启动成功后能看到如下日志信息:
如果是在后台启动服务,那么在服务启动后,能看到这些信息,包含启动所需的各组件:
[+] Running 18/18
✔ app Built
✔ Network cozeloop_mynetwork Created
✔ Volume "cozeloop_minio_config" Created
✔ Volume "cozeloop_rocketmq_namesrv_data" Created
✔ Volume "cozeloop_rocketmq_broker_data" Created
✔ Volume "cozeloop_shared_frontend_dist" Created
✔ Volume "cozeloop_redis_data" Created
✔ Volume "cozeloop_mysql_data" Created
✔ Volume "cozeloop_clickhouse_data" Created
✔ Volume "cozeloop_minio_data" Created
✔ Container cozeloop-mysql Healthy
✔ Container cozeloop-redis Healthy
✔ Container cozeloop-minio Healthy
✔ Container cozeloop-clickhouse Healthy
✔ Container cozeloop-namesrv Healthy
✔ Container cozeloop-broker Healthy
✔ Container cozeloop-app Healthy
✔ Container cozeloop-nginx Started
如果需要切换运行模式,需要先停止运行服务,然后再重新拉起服务,注意需要加--build参数重新编译镜像,如下所示:
-
停止服务运行。
docker compose down
-
重新拉起服务,并指定新的服务启动模式。 注意重新拉起服务时需要加
--build参数重新编译镜像。# 按需传入启动模式,此处以发布模式为例 RUN_MODE=release docker compose up --build
如果无需使用 CozeLoop 社区版,可以执行以下命令关闭服务。
-
方式一:关闭服务,不删除数据。后续可再次拉起服务,并重新构建镜像,继续使用 CozeLoop 社区版。
# 方式一:关闭服务, 数据还依然存在。后续启动服务后还能看到数据 docker compose down -
方式二:关闭服务,并且删除数据。后续如需继续使用 CozeLoop 社区版,只能重新部署服务。
# 方式二:关闭服务,并且删除数据 docker compose down -v # 关闭服务并删除数据后,查看容器列表。回显信息应为空 docker ps -a
你可以参考以下命令,在各种场景中启动服务。
- 启动服务时如果无需重新构建镜像、更改启动模式,可以直接拉起服务,并在拉起时选择同样的启动模式。
- 下表以默认的开发模式为例,如果选择其他模式,在命令前增加
RUN_MODE=debug或RUN_MODE=release即可。
| 服务状态 | 操作 | 命令 |
|---|---|---|
| 服务未部署 | 启动服务,默认开发模式 | docker compose up --build |
| 服务运行中 | 重启服务,不构建镜像 | docker compose restart app |
| 服务关闭后 | 启动服务,不构建镜像 | docker compose up |
| 启动服务,并构建镜像 | docker compose up --build |
|
| 启动服务,并重新构建镜像,且后台运行安装进程 | docker compose up --build -d |