# ============================================================= # freedom 前后端部署编排(初始化到宿主 /opt/freedom/deploy/) # # 使用方式(在 /opt/freedom/deploy/ 目录下执行): # docker compose up -d # 全量部署(首次) # docker compose up -d backend # 仅部署/更新后端(CI 使用) # docker compose up -d web # 仅部署/更新前端(CI 使用) # docker compose down # 停止所有服务 # docker compose logs -f # 查看日志 # # 前置:同目录下需存在 .env 文件(数据库凭据),由初始化脚本创建。 # DB_URL= jdbc:mysql://:3306/freedom_db?...(本机可用 192.168.1.158) # DB_USERNAME= root # DB_PASSWORD= <密码> # # 网络说明: # - web(前端 Nginx)对外暴露 80 端口,是统一入口 # - backend(后端)仅内网网络,通过服务名 backend:8800 被 Nginx 反代 # ============================================================= services: # ---------------- 后端 ---------------- # 服务名固定为 backend(前端 nginx.conf 中 proxy_pass http://backend:8800) backend: image: freedom-admin:${IMAGE_TAG:-latest} container_name: freedom-admin restart: unless-stopped # 后端不直接暴露公网,仅加入内部网络供 Nginx 反代 expose: - "8800" environment: # 数据库连接(来自 .env,CI 部署时读取) DB_URL: ${DB_URL} DB_USERNAME: ${DB_USERNAME} DB_PASSWORD: ${DB_PASSWORD} TZ: Asia/Shanghai volumes: - ./logs/backend:/app/logs networks: - freedom-net # ---------------- 前端(统一入口) ---------------- web: image: freedom-web:${IMAGE_TAG:-latest} container_name: freedom-web restart: unless-stopped ports: - "80:80" environment: TZ: Asia/Shanghai depends_on: - backend networks: - freedom-net networks: freedom-net: driver: bridge