docker-compose忽略`configs:`部分
我有一个docker-compose服务定义,configuration部分如下:
# api.yml file version: '3.3' services: api: ... configs: - source: api_config target: /env.cfg configs: api_config: file: ./config/my.cfg
当我使用这个文件来驱动一个群,也就是我用docker stack deploy ...
部署它时,configuration文件被正确地提供到正在运行的容器中。
但是,当我尝试通过docker-compose -f api.yml up
运行api的本地版本时,我得到一个启动失败,抱怨我的api服务无法find它的configuration。 (注意:docker-compose本身不会报告任何错误。)
普通的docker-compose
用法不支持configs
部分吗?
虽然有些措词似乎表明这只适用于堆栈,但文档并没有明确地这样说:
注意:configuration必须已经存在,或者在该堆栈文件的顶层configurationconfiguration中定义,否则堆栈部署将失败。
使用群模式提供的embedded式密钥值存储来实现configuration和秘密。 这些function对于不作为群集模式一部分运行的容器不可用,所以它们将被docker-compose忽略。
https://docs.docker.com/engine/swarm/configs/#about-configs
注意:Dockerconfiguration仅适用于群集服务,而不适用于独立容器。 要使用此function,请考虑调整您的容器作为1级服务运行。