昨天我遇到了类似的问题,当时我放了这样的东西:
network:
it-network:
driver: bridge
服务无法相互访问,我认为是因为将网络的创建委托给 docker-compose 文件。
但是当我先创建网络时:
docker network create --driver bridge it-network
然后在docker-compose.yml文件中使用
services:
service1:
networks:
- it-networks
.....
networks:
default:
external:
name: it-network
工作正常。
我使用的有用命令:
docker network inspect it-network
我发现的其他解决方案是使用扩展指令,通过它您可以在服务和不同的 docker-compose 文件之间共享配置。
https://docs.docker.com/compose/extends/
但我还没有测试它。
我在 docker-compose 文件中使用的服务
- postgres(来自 docker hub)
- Jira Software(来自 Dockerfile 的预编译映像)
我的 docker compose 文件是这样的:
version: '3'
services:
postgresql-jira:
image: postgres:9.5-alpine
volumes:
- postgresqldata:/var/lib/postgresql/data
environment:
- 'POSTGRES_USER=devops'
# CHANGE THE PASSWORD!
- 'POSTGRES_PASSWORD=xxx'
- 'POSTGRES_DB=jiradb'
- 'POSTGRES_ENCODING=UNICODE'
- 'POSTGRES_COLLATE=C'
- 'POSTGRES_COLLATE_TYPE=C'
logging:
# limit logs retained on host to 25MB
driver: "json-file"
options:
max-size: "500k"
max-file: "50"
jira-software:
depends_on:
- postgresql-jira
image: XXX/jira-server:8.8.1
volumes:
- jiradata:/var/atlassian/jira
ports:
- '80:8080'
environment:
- 'JIRA_DATABASE_URL=postgresql://devops@postgresql/jiradb'
- 'JIRA_DB_PASSWORD=xxx'
- 'SETENV_JVM_MINIMUM_MEMORY=2048m'
- 'SETENV_JVM_MAXIMUM_MEMORY=4096m'
- 'JIRA_PROXY_NAME='
- 'JIRA_PROXY_PORT='
- 'JIRA_PROXY_SCHEME='
links:
- "postgresql-jira:postgresql-jira-db"
logging:
# limit logs retained on host to 25MB
driver: "json-file"
options:
max-size: "500k"
max-file: "50"
volumes:
jiradata:
external: false
postgresqldata:
external: false
networks:
default:
external:
name: it-network