# Docker Compose 使用说明 本项目在根目录提供三个 Docker Compose 配置文件,分别面向不同的运行场景。下面说明各自用途与使用方式。 ## 公共说明 - 端口映射: - 后端:`8080:8080` - 前端:`5173:80` - 运行前建议在根目录准备 `.env`(已提供示例),用于配置以下环境变量: - `APP_BASE_URL` - `TOKEN_SIGNING_KEY` - `JWT_SECRET` - `VOLCANO_API_KEY` - `SPRING_MAIL_USERNAME` - `SPRING_MAIL_PASSWORD` > 说明:三个 Compose 文件都依赖这些环境变量;其中 `TOKEN_SIGNING_KEY`/`JWT_SECRET` 等不设置会使用空值默认。 ## 1) `docker-compose.yml`(本地构建) 用途:本地开发或需要基于源码构建镜像时使用。 特点: - `backend` 和 `frontend` 使用 `build` 从本地目录构建镜像。 - 挂载 `./ems-backend/json-db` 与 `./ems-backend/uploads` 到容器内,便于持久化数据。 使用方式(PowerShell): ```bash docker compose -f docker-compose.yml up -d --build ``` 停止并清理(保留挂载目录): ```bash docker compose -f docker-compose.yml down ``` ## 2) `docker-compose.hub.yml`(Docker Hub 镜像) 用途:不想本地构建,直接使用 Docker Hub 公共镜像。 特点: - `backend`/`frontend` 使用 `chuxunyu/ems-backend:latest`、`chuxunyu/ems-frontend:latest`。 - 使用 Docker 卷 `ems_json_db`、`ems_uploads` 持久化数据。 使用方式(PowerShell): ```bash docker compose -f docker-compose.hub.yml up -d ``` 停止并清理(保留卷): ```bash docker compose -f docker-compose.hub.yml down ``` 如需删除卷(会清空数据): ```bash docker compose -f docker-compose.hub.yml down -v ``` ## 3) `docker-compose.private.yml`(私有镜像仓库) 用途:使用私有镜像仓库 `docker.aizhangz.top` 的镜像部署。 特点: - `backend`/`frontend` 使用 `docker.aizhangz.top/ems-backend:latest`、`docker.aizhangz.top/ems-frontend:latest`。 - 使用 Docker 卷 `ems_json_db`、`ems_uploads` 持久化数据。 - 通常需要先登录私有仓库。 使用方式(PowerShell): ```bash docker login docker.aizhangz.top docker compose -f docker-compose.private.yml up -d ``` 停止并清理(保留卷): ```bash docker compose -f docker-compose.private.yml down ``` 如需删除卷(会清空数据): ```bash docker compose -f docker-compose.private.yml down -v ``` ## 常见检查 - 前端:访问 `http://localhost:5173` - 后端:访问 `http://localhost:8080`(可结合后端 Swagger UI)