Docker Swarm具有外部化为.env文件的映像版本

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

但是,当我尝试将stack部署到swarm ,docker引擎会抱怨我的映像不是正确的存储位置/标记,具有以下准确信息:

来自守护进程的错误响应:rpc错误:code = 3 desc = ContainerSpec:“GROUP / IMAGE:”不是有效的资源库/标记

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

干杯,奥利维尔

docker docker stack deploy中的yamlparsing器并不具备docker-compose所有特性。 但是,可以使用docker-compose config在完成所有variablesreplace,扩展其他文件以及合并多个文件之后输出yaml文件。 这有效地将docker-compose成一个预处理器。

答案很简单:它不是一个bug,也不是一个特性。 .env目前不支持.env 。 在运行export $(cat .env)之前,您必须手动运行.env运行export $(cat .env) docker stack ...

在Docker Github中讨论这个需求有一个问题。 https://github.com/docker/docker.github.io/issues/3654另一个讨论的问题和解决scheme: https : //github.com/moby/moby/issues/29133#issuecomment-285980447

Interesting Posts