可写Docker Compose / Stack配置

时间:2019-07-03 14:09:15

标签: docker docker-compose docker-swarm

我们正在使用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

1 个答案:

答案 0 :(得分:1)

文档指定配置不可写。摘录如下:

  

配置不可写,因为它们是临时安装的   文件系统,因此如果您设置可写位,它将被忽略。

参考:https://docs.docker.com/compose/compose-file/

您可以旋转配置,以下是一个示例:https://docs.docker.com/engine/swarm/configs/#example-rotate-a-config