我们正在使用dockers config功能将配置推送到群集中的不同节点(群)。我们通过在docker-compose文件中指定它来实现。不幸的是,这导致文件是只读的。有没有办法解决这个问题,或者将自定义配置推送到服务器,使Docker容器仍然可以覆盖其中的一部分?
例如
zookeeperDelta:
image: zookeeper
restart: always
hostname: zookeeperDelta
ports:
- 2183:2181
configs:
- source: zookeeper_cfg
target: /conf/zoo.cfg
gid: '1000'
uid: '1000'
mode: 0777
volumes:
- /var/zookeeper/logs:/logs
- /var/zookeeper/data:/data
- /var/zookeeper/datalog:/datalog
environment:
ZOO_MY_ID: 3
ZOO_LOG4J_PROP: INFO,ROLLINGFILE
ZOO_SERVERS: server.1=zookeeperAlpha:2888:3888;2181 server.2=zookeeperBeta:2888:3888;2181 server.3=0.0.0.0:2888:3888;2181
deploy:
replicas: 1
placement:
constraints:
- node.hostname == zookeeperDelta
答案 0 :(得分:1)
文档指定配置不可写。摘录如下:
配置不可写,因为它们是临时安装的 文件系统,因此如果您设置可写位,它将被忽略。
参考:https://docs.docker.com/compose/compose-file/
您可以旋转配置,以下是一个示例:https://docs.docker.com/engine/swarm/configs/#example-rotate-a-config