gpt4 book ai didi

docker - docker-compose.yml紧凑通用配置

转载 作者:行者123 更新时间:2023-12-02 19:08:23 25 4
gpt4 key购买 nike

下面有docker-compose.yml文件,其中包含n个具有相同配置(imagevolumes等)的容器,但具有command属性。有没有写重复的地方?那么如果我必须更改某些配置,则可以在一个地方完成它,而不必更改所有出现的情况。

一种选择是使用我在image中使用的变量,但是这并不能解决我想要向所有容器添加另一个volume的问题。

附注-不需要更改版本3。

version: '2'
services:
container1:
image: ${CONTAINER_IMAGE}
user: my_user
hostname: my_hostname
command: unique running command for container1
env_file:
- 'docker.env'
volumes:
- ./builds/image:/image
- ~/workspace/component1:/component1
- ~/workspace/component2:/component2
links:
- db:db
- elastic-docker:elastic-docker
- graphite:graphite-docker
- zookeeper:zookeeper
depends_on:
- rabbitmq

container2:
image: ${CONTAINER_IMAGE}
user: my_user
hostname: my_hostname
command: unique running command for container2
env_file:
- 'docker.env'
volumes:
- ./builds/image:/image
- ~/workspace/component1:/component1
- ~/workspace/component2:/component2
links:
- db:db
- elastic-docker:elastic-docker
- graphite:graphite-docker
- zookeeper:zookeeper
depends_on:
- rabbitmq

container3:
image: ${CONTAINER_IMAGE}
user: my_user
hostname: my_hostname
command: unique running command for container3
env_file:
- 'docker.env'
volumes:
- ./builds/image:/image
- ~/workspace/component1:/component1
- ~/workspace/component2:/component2
links:
- db:db
- elastic-docker:elastic-docker
- graphite:graphite-docker
- zookeeper:zookeeper
depends_on:
- rabbitmq

#and so on..

谢谢。

最佳答案

您可以使用extends关键字来重复使用第一个容器的配置

version: '2'
services:
c1:
image: alpine
command: echo 1
c2:
extends: c1
command: echo 2

或使用第二个文件作为模板
version: '2'
services:
template:
image: alpine

version: '2'
services:
c1:
extends:
file: template.yml
service: template
command: echo 1

但您仅应在绝对需要的情况下使用不同的配置,因为如果您不能将其部署为服务,并使用 docker service scale service=3或docker-compose(v3)轻松对其进行扩展,
 deploy:
mode: replicated
replicas: 3

关于docker - docker-compose.yml紧凑通用配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45649403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com