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

Docker Compose报错services.catalog.api.networks需为列表,求桥接网络配置

解决Docker Compose报错“services.catalog.api.networks must be a list”

报错原因很明确:Docker Compose要求networks字段必须是列表格式,你当前配置中orderapi和catalog.api的networks直接指定了网络名称,没有使用列表语法(添加-前缀),导致YAML解析失败。

以下是修正后的完整配置:

version: '3.4'

networks:
  testnetwork:
    driver: bridge
    # 如果你已经手动创建了testnetwork,添加下面这行,避免Compose重新创建同名网络
    # external: true

services:
  orderdb:
    image: mongo
    # 若需要orderapi连接orderdb,建议将数据库也加入同一网络
    networks:
      - testnetwork

  catalogdb:
    image: mongo
    # catalog.api需要连接catalogdb,必须加入同一网络
    networks:
      - testnetwork  
    
  orderapi:
    image: orderapi
    build:
      context: .
      dockerfile: OrderApi/Dockerfile
    ports:
      - 5243:5243
    networks:
      - testnetwork 

  catalog.api:
    image: farhanpatel/catalogapi
    build:
      context: .
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - "DatabaseSettings:ConnectionString=mongodb://catalogdb:27017"      
    depends_on: 
      - catalogdb  
    ports:
      - "5116:5116"  
    networks:
      - testnetwork     

volumes:
  mongo_data:

额外注意事项:

  • 因为你的catalog.api需要连接catalogdb,必须把catalogdb也加入testnetwork,否则两个服务不在同一网络无法通信;同理orderapi连接orderdb的话也要做相同配置;
  • depends_on仅控制服务启动顺序,不保证数据库服务完全就绪(比如MongoDB启动完成并可接受连接),如果需要确保数据库就绪后再启动API服务,需要添加healthcheck配置;
  • 如果你已经手动创建了testnetwork,一定要在networks.testnetwork下添加external: true,否则Docker Compose会自动创建一个新的testnetwork桥接网络,和你手动创建的不是同一个。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 20:24:31