# 启动和更新后端服务指南 ## 方式一:使用 Makefile(推荐) ### 启动完整服务(前端 + 后端 + Nginx) ```bash make run-2 ``` 这会: 1. 重新构建前端静态资源 2. 重新构建后端镜像 3. 启动 PostgreSQL、Backend 和 Nginx 服务 ### 停止服务 ```bash make clean-2 ``` --- ## 方式二:只更新后端服务 ### 1. 停止服务 ```bash docker compose -f docker-compose.yml -f backend/docker-compose.yml --profile backend down ``` ### 2. 重新构建并启动后端 ```bash # 设置环境变量(必须!) export COMPOSE_PROJECT_NAME=ocdp export ADAPTER_MODE=production export BACKEND_BUILD_CONTEXT=$(pwd)/backend export BACKEND_BUILD_DOCKERFILE=$(pwd)/backend/Dockerfile export BACKEND_MOCK_BUILD_DOCKERFILE=$(pwd)/backend/Dockerfile.mock export INIT_DB_SQL_PATH=$(pwd)/backend/scripts/init-db.sql # 重新构建后端镜像 docker compose -f docker-compose.yml -f backend/docker-compose.yml --profile backend build backend # 启动服务 docker compose -f docker-compose.yml -f backend/docker-compose.yml --profile backend up -d postgres backend nginx ``` ### 3. 或者使用一行命令(强制重建) ```bash docker compose -f docker-compose.yml -f backend/docker-compose.yml --profile backend up -d --build --force-recreate backend ``` --- ## 方式三:只重启后端容器(不重新构建) ```bash # 重启后端容器 docker compose -f docker-compose.yml -f backend/docker-compose.yml --profile backend restart backend # 或者先停止再启动 docker compose -f docker-compose.yml -f backend/docker-compose.yml --profile backend stop backend docker compose -f docker-compose.yml -f backend/docker-compose.yml --profile backend start backend ``` --- ## 方式四:查看日志 ```bash # 查看所有服务日志 docker compose -f docker-compose.yml -f backend/docker-compose.yml --profile backend logs -f # 只查看后端日志 docker compose -f docker-compose.yml -f backend/docker-compose.yml --profile backend logs -f backend ``` --- ## 方式五:开发模式(只启动数据库,本地运行后端) ```bash # 只启动 PostgreSQL docker compose -f backend/docker-compose.yml up -d postgres # 然后在本地运行后端 cd backend go run cmd/api/main.go ``` --- ## 常用命令速查 ```bash # 查看运行中的服务 docker compose -f docker-compose.yml -f backend/docker-compose.yml --profile backend ps # 查看后端容器状态 docker ps | grep ocdp-backend # 进入后端容器 docker exec -it ocdp-backend sh # 查看后端健康状态 curl http://localhost:8080/health # 停止所有服务 docker compose -f docker-compose.yml -f backend/docker-compose.yml --profile backend down # 停止并删除数据卷(清理数据) docker compose -f docker-compose.yml -f backend/docker-compose.yml --profile backend down -v ``` --- ## 快速更新后端(推荐流程) ```bash # 1. 停止服务 docker compose -f docker-compose.yml -f backend/docker-compose.yml --profile backend down # 2. 重新构建并启动(使用 Makefile) make run-2 # 或者手动执行 docker compose -f docker-compose.yml -f backend/docker-compose.yml --profile backend up -d --build ```