| services: |
| # 后端服务 |
| backend: |
| build: |
| context: . # 指向Java项目目录 |
| ports: |
| - "5011:5011" |
| environment: |
| SPRING_PROFILES_ACTIVE: "prod" |
| # 确保时区和SSL参数一致 |
| SPRING_DATASOURCE_URL: "jdbc:mysql://202.205.102.121:3306/echodevelop?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true" |
| SPRING_DATASOURCE_USERNAME: "team11" |
| SPRING_DATASOURCE_PASSWORD: "Team11000#" |
| volumes: |
| - ./uploads:/app/uploads # 挂载上传目录 |
| networks: |
| - app-network |
| # dockerfile: Dockerfile |
| restart: unless-stopped |
| |
| # 前端服务 |
| frontend: |
| build: # 指向React项目目录,仅构建静态文件 |
| context: ../echo-frontend # 确保构建上下文包含所有文件 |
| depends_on: |
| - backend |
| networks: |
| - app-network |
| # dockerfile: Dockerfile |
| restart: unless-stopped |
| |
| nginx: |
| image: nginx:alpine |
| ports: |
| - "3011:80" # 暴露 HTTP 端口 |
| # - "443:443" # 若需 HTTPS 则暴露 443 |
| volumes: |
| - ../echo-frontend/nginx.conf:/etc/nginx/conf.d/default.conf # 挂载 Nginx 配置 |
| - ../echo-frontend/build:/usr/share/nginx/html # 确保路径指向构建目录 |
| - ./uploads:/usr/share/nginx/html/uploads # 让前端能访问上传目录 |
| depends_on: |
| - frontend |
| - backend |
| networks: |
| - app-network |
| |
| networks: |
| app-network: # 自定义网络确保容器互通 |