You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Compose.yml存放位置及多服务编排配置咨询

Docker Compose 管理多服务应用的最佳实践与配置示例

两种compose.yml存放方案对比

  • 单项目独立compose.yml:每个服务项目下单独维护自己的compose文件,适合开发阶段各自调试,但部署时需要分别启动两个compose,依赖协调麻烦,不利于整体运维。
  • 统一根目录compose.yml:在两个服务项目的父目录(或单独的配置目录)维护一个全局compose文件,将两个服务纳入同一应用栈管理,部署、启停、扩缩容更便捷,是生产环境的主流做法。

通用推荐方案

开发阶段,两个项目可各自保留本地调试用的compose.yml(比如你的rest.galleries已有的文件);服务器部署时,建议使用全局统一的compose.yml,把ng.galleries和rest.galleries放在同一配置中,实现一键管理。

配置示例

1. 全局部署用docker-compose.yml(父目录)

假设项目结构如下:

galleries-stack/
├── ng.galleries/
│   └── Dockerfile
├── rest.galleries/
│   ├── Dockerfile
│   └── docker-compose.yml(本地开发用)
└── docker-compose.yml(全局部署用)

全局compose配置内容:

version: '3.8'

services:
  ng.galleries:
    # 从ng项目目录构建镜像
    build: ./ng.galleries
    # 映射主机8001端口到容器内Nginx默认80端口
    ports:
      - "8001:80"
    # 确保rest服务先启动(仅控制启动顺序,不等待服务就绪)
    depends_on:
      - rest.galleries
    # 加入自定义网络,服务间可通过服务名通信
    networks:
      - galleries-network

  rest.galleries:
    build: ./rest.galleries
    ports:
      - "8000:8000"
    # 挂载独立卷存储日志和数据
    volumes:
      - rest-galleries-logs:/opt/app/logs  # 替换为容器内实际日志路径
      - rest-galleries-data:/opt/app/data  # 替换为容器内实际数据存储路径
    networks:
      - galleries-network
    # 可选:添加健康检查,确保服务就绪后再让前端连接
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8000/actuator/health"]
      interval: 10s
      timeout: 5s
      retries: 3

# 定义命名卷,持久化存储数据
volumes:
  rest-galleries-logs:
  rest-galleries-data:

# 自定义桥接网络,隔离应用栈
networks:
  galleries-network:
    driver: bridge

2. 前端本地开发用docker-compose.yml(ng.galleries项目内)

如果开发时rest服务在本地IDE运行(而非容器),可配置如下:

version: '3.8'

services:
  ng.galleries:
    build: .
    ports:
      - "8001:80"
    # 允许容器访问主机本地服务
    extra_hosts:
      - "host.docker.internal:host-gateway"

关键说明

  • 自定义网络galleries-network中,前端容器可直接通过http://rest.galleries:8000访问后端服务,无需依赖主机IP。
  • depends_on仅控制启动顺序,若需等待后端服务完全就绪,需配合healthcheck和depends_on的condition参数(Compose 2.1+支持)。
  • 命名卷比绑定挂载更适合生产环境,避免主机路径权限问题。

内容的提问来源于stack exchange,提问作者CraigFoote

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 14:48:09