在基于Docker的映像更新后,Docker不会在compose中更新服务的容器

时间:2019-01-05 01:26:56

标签: docker docker-compose

我有一个基本映像,其中包含一些我很少更新的应用程序内容。然后,我有一个使用该基本映像(在Dockerfile中带有FROM)的映像,该映像更经常更新。最后,我在生产服务器上使用了docker-compose,该服务器通过使用应用程序图片网址(指向自托管注册表的网址)组成了多种服务。这些服务具有不同的环境变量和命令。

当我需要在生产环境中更新服务时,我只会构建应用程序映像(而不是基础映像)。之后,我将新映像推送到注册表并标记两次,一次带有时间戳,一次带有“最新”。

然后我进入生产服务器并docker-compose pull映像,最后我docker-compose up -d

我期望服务的映像已更新,但是当我exec -it <id> bash进入服务时,我看不到文件应有的更新。

新图像肯定会被拉出,因为当我run -it <id> bash进入图像时,我会看到更新的文件。

1 个答案:

答案 0 :(得分:0)

使用docker-compose up --build -d启动堆栈,否则如果projectname_service映像已经存在,它将直接运行它,而不重建其需要的图层。而且,如果基础映像已更新,则应在其顶部添加一个FROM语句,以触发该映像的完全重建

相关问题