某些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
可以,但是我们没有真正的方法来管理此更新过程。
有更好的方法吗?
答案 0 :(得分:1)
除非使用docker-compose build --pull
显式触发构建,否则Docker compose将使用本地图像缓存中的当前图像作为基础图像。
如果您有一天应该决定分离构建和运行生命周期,那么docker build --pull
会提供相同的行为。