当我尝试使用“ network_mode”对docker-compose.yml文件进行docker-compose时,出现以下错误:
错误:撰写文件'./docker-compose.yml'无效,因为: services.combined.network_mode包含无效的类型,应为 字符串
我的docker-compose.yml文件:
version: '3'
services:
dbrs:
hostname: localhost
build:
context: .
dockerfile: ./docker/dbrs/Dockerfile
volumes:
- dbdata:/data/db
ports:
- "27017:27017"
- "27018:27018"
- "27019:27019"
networks:
- app-network
combined:
build:
context: .
dockerfile: ./docker/combined/Dockerfile
env_file: .env
ipc: host
volumes:
- .:/home/node/app
- ./cypress:/usr/src/app/cypress
- node_modules:/home/node/app/node_modules
- /tmp/.X11-unix:/tmp/.X11-unix
- /dev/shm:/dev/shm
ports:
- "5000:5000"
- "8080:8080"
networks:
- app-network
network_mode:
- "service:dbrs"
depends_on:
- dbrs
networks:
app-network:
driver: bridge
volumes:
dbdata:
node_modules:
据我所知,network_mode应该适用于the docs的第3版。我的docker-compose版本是1.24.1,内部版本4667896。
还有其他原因导致我无法在docker-compose.yml文件中使用“ network_mode”吗?
答案 0 :(得分:1)
当你说:
network_mode:
- "service:dbrs"
新行,连字符声明YAML列表。如错误消息所示,它必须是单个字符串,而不是列表。该值应该在同一行。
network_mode: "service:dbrs"
(这样直接连接到另一个服务的网络堆栈是非常不寻常的。如果需要与另一个容器通信,则可以使用其Compose服务名称和内部端口号dbrs:27017
。{{3} }有更多详细信息。)