如何从 运行 docker 开始提取 docker-compose 文件

How to extract docker-compose file from running docker start

我有 docker 个以 docker stack deploy --compose-file ... 开头的堆栈 然后通过 Docker Portainer UI.

手动编辑

我想编写一个脚本来更新其中一项服务的 docker 图片标签。

为此,我需要“下载”最新的“docker-compose”堆栈定义,但是我找不到合适的 docker 命令。

我知道最好的办法是停止手动更改堆栈并依赖存储在 git 中的定义,但不幸的是,这不取决于我。

请指出适当的 docker 命令或确认它不可用。

据我所知,没有命令可以直接从 运行ning 容器中获取撰写文件。至少在 docker 中没有开箱即用。您可以尝试从 docker inspect 和一些其他命令解析所有相关信息到 list/inspect 所有相关对象?

我曾经遇到过类似的情况,我们有一个 运行ning 容器,但没有我们需要更新的 run/compose 命令。当时(大约一年前)我发现并使用了 docker-autocompose,效果非常好。我们只需要手动验证和调整一些东西,但它用 运行 参数为我们完成了所有困难的部分。

如果您的撰写配置足够简单,它可以帮助您实现自动化。

但是如果你想完全自动化模仿CD,那么我不推荐上面的方法。在那种情况下,我会检查您是否可以按照@LinFelix 的建议使用 portainer api。或者将撰写文件存储在某处 - 使用参数($IMAGE_TAG)(git/on 服务器)准备,这样您就可以生成包含所有配置的临时撰写文件,然后删除当前的。