在子文件夹中使用多个Docker堆栈文件

时间:2019-07-15 11:44:10

标签: docker docker-compose docker-stack

当堆栈文件位于单独的子文件夹中时,我在将多个堆栈文件部署在一个docker堆栈中时遇到问题:

这是我的树:

.
├── README.md
├── stack1
│   ├── stack1.env
│   └── stack1.yml
├── stack1.env
├── stack1.yml
├── stack2
│   ├── stack2.env
│   └── stack2.yml
├── stack2.env
└── stack2.yml

文件stack1.ymlstack1/stack1.ymlstack2.ymlstack2/stack2.yml完全相同,并且结构非常简单:

version: '3.6'

services:

  test1:
    image: alpine
    env_file:
      - stack2.env

现在,发生了一件奇怪的事情

第一个Docker堆栈部署,没有子文件夹,按预期工作:

docker stack deploy -c stack1.yml -c stack2.yml stack-test
    => Stack deployed

但是,使用子文件夹的第二种方法不起作用,显然docker stack试图解析相对于先前文件夹的env_files

docker stack deploy -c stack1/stack1.yml -c stack2/stack2.yml stack-test
    open <privacy>/stack1/stack2.env: no such file or directory
#                       ^------^
#                       mismatch!

我的Docker Stack文件很多,因此我需要通过文件夹进行分离和结构化。有谁知道我该如何处理?

这是带有源代码的Git Repro:

https://github.com/sebastianzillessen/docker-stack-playground

非常感谢, 塞巴斯蒂安

0 个答案:

没有答案