2017-09-13 109 views
1

我有一个CONFIGS段泊坞窗,撰写服务定义如下:搬运工,撰写忽略`CONFIGS:`部分

# 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 ...配置文件被正确提供到正在运行的容器中。

但是,当我尝试通过docker-compose -f api.yml up运行api的本地版本时,我得到一个启动失败,抱怨我的api服务无法找到它的配置。 (注意:docker-compose本身不会报告任何错误。)

是否configs部分不支持普通docker-compose的用法?

的文档没有明确这么说虽然有些措辞似乎表明这是唯一的堆栈:

注:配置必须存在,否则在这个堆栈的顶级CONFIGS配置中定义文件或堆栈部署将失败。

回答

1

配置和秘密通过使用swarm模式提供的嵌入式raft key值存储来实现。这些功能对于不作为群集模式一部分运行的容器不可用,所以它们将被docker-compose忽略。

https://docs.docker.com/engine/swarm/configs/#about-configs

注:泊坞CONFIGS只提供给一窝蜂服务,而不是到独立的容器。要使用此功能,请考虑调整您的容器作为1级服务运行。