有什么好的策略更新docker服务映像或dockerfile基本映像

时间:2020-04-08 21:45:51

标签: docker docker-compose dockerhub

某些docker映像在更新时会使用相同的标签重新标记。

人们正在努力采取什么样的策略或方法,以确保他们获取较新的基础映像来提供其Dockerfile FROM语句,或者为依赖于具有升级映像(但标签相同)的服务的人

我知道kubernetes具有 pull_policy 语句,但是docker,swarm或docker-compose的等效软选项是什么。

作为示例,我们使用tiangolo/uwsgi-nginx-flask:python3.6作为Flask应用程序的基础。 该映像会不时进行升级,因此基本操作系统,python,nginx,flask和其他依赖项都将收到更新,但是我们始终使用相同的映像标签。

docker-compose does not have是一种内置方法,用于在构建过程中处理刷新基础图像,因此我们只需要在预构建脚本中执行以下操作来强制提取新图像:

find codebase -name "Dockerfile" | while read line; do cat $line | awk '/FROM/ {print $2}' | xargs docker pull

可以,但是我们没有真正的方法来管理此更新过程。

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

除非使用docker-compose build --pull显式触发构建,否则Docker compose将使用本地图像缓存中的当前图像作为基础图像。

如果您有一天应该决定分离构建和运行生命周期,那么docker build --pull会提供相同的行为。