2017-09-13 110 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級服務運行。