Docker Swarm具有映射到.env文件的图像版本

问题描述:

我用于将我的映像版本外化到我的.env文件。这使得它很容易维护,我不修改我的docker-compose.yml文件只是为了升级版本,所以我敢肯定,我不会错误地删除一行或其他。Docker Swarm具有映射到.env文件的图像版本

但是,当我尝试使用stack部署我的服务,以swarm,搬运工引擎抱怨说我的形象是不正确的reposity /标签,具有确切以下消息:

Error response from daemon: rpc error: code = 3 desc = ContainerSpec: "GROUP/IMAGE:" is not a valid repository/tag

为了解决这个问题,我可以直接在docker-compose.yml文件中修复图像版本。这里有没有逻辑或者是一个错误?但是,这混合修复了docker-compose和变量的一部分。

干杯, 奥利维尔

的答案很简单:这是不是一个错误,也不是功能。 .env目前不支持docker stack。 您必须手动运行export $(cat .env).env源运行docker stack ...

有讨论这个需要在泊坞Github上的问题了。 https://github.com/docker/docker.github.io/issues/3654 和另外一个讨论的问题和解决方案:https://github.com/moby/moby/issues/29133#issuecomment-285980447

docker stack deploy YAML的解析器不会有docker-compose的所有相同的功能。但是,可以使用docker-compose config在完成所有变量替换,扩展其他文件并将多个文件合并在一起之后输出yaml文件。这有效地将docker-compose变成预处理器。

+0

Hi @bmitch。我知道'docker stack deploy'没有'docker-compose'具有的所有功能。那是我在我自己的回答中写下的,并且链接到了GitHub中的相关问题。顺便说一下,我不知道我们可以使用'docker-compose'作为预处理器。谢谢你的提示。 – Olivier