我正在使用这个docker-compose.yml。
如果可能的话,我想简化和继承配置。
version: '2'
services:
nginx-proxy:
image: jwilder/nginx-proxy
container_name: nginx-proxy
ports:
- "80:80"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
web_one:
container_name: "web_one"
build:
context: ./
dockerfile: web.docker
volumes:
- ./../one:/var/www
environment:
- VIRTUAL_HOST=whoami_one.local
links:
- app_one
app_one:
container_name: "app_one"
build:
context: ./
dockerfile: app.docker
volumes:
- ./../one:/var/www
links:
- db
web_two:
container_name: "web_two"
build:
context: ./
dockerfile: web.docker
volumes:
- ./../two:/var/www
environment:
- VIRTUAL_HOST=whoami_two.local
links:
- app_two
app_two:
container_name: "app_two"
build:
context: ./
dockerfile: app.docker
volumes:
- ./../two:/var/www
links:
- db
我有15个具有相同配置的站点。
我可以使配置更简单吗?像这样:
version: '2'
services:
nginx-proxy:
image: jwilder/nginx-proxy
container_name: nginx-proxy
ports:
- "80:80"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
one:
extends:
file: common-services.yml
volumes:
- ./../one:/var/www
environment:
- VIRTUAL_HOST=whoami_one.local
two:
extends:
file: common-services.yml
volumes:
- ./../two:/var/www
environment:
- VIRTUAL_HOST=whoami_two.local
或更好?
谢谢!
最佳答案
另一种方法是创建依赖于其他服务的无操作服务。
例如,在下面的docker-compose.yml
中,我有两个命名空间,分别是开发应用程序时所需的服务的dev和与可视化应用程序指标相关的服务的指标(因为我不感兴趣在开发时启动这些指标)。
version: "3"
services:
dev:
image: monroe/noop
depends_on: ["postgres", "keycloak"]
metrics:
image: monroe/noop
depends_on: ["grafana"]
postgres: ...
keycloak: ...
grafana: ...
关于docker - 如何在docker-compose中对容器进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39100483/