当堆栈文件位于单独的子文件夹中时,我在将多个堆栈文件部署在一个docker堆栈中时遇到问题:
这是我的树:
.
├── README.md
├── stack1
│ ├── stack1.env
│ └── stack1.yml
├── stack1.env
├── stack1.yml
├── stack2
│ ├── stack2.env
│ └── stack2.yml
├── stack2.env
└── stack2.yml
文件stack1.yml
和stack1/stack1.yml
或stack2.yml
和stack2/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
非常感谢, 塞巴斯蒂安