假设我有一个基于ubuntu:latest
的普通容器。现在有了安全更新,并且在docker存储库中更新了ubuntu:latest
。
发布于 2018-08-19 01:32:32
其中一种方法是通过您的CI/CD系统进行驱动。一旦您的父映像构建完成,就可以使用该父映像来扫描git repos中的映像。如果找到了,你就会发送一个拉请求,以跳转到新版本的图像。如果所有测试都通过,则拉取请求将被合并,您将拥有一个基于更新的父映像的新的子映像。可以在这里找到采用此方法的工具的示例:https://engineering.salesforce.com/open-sourcing-dockerfile-image-update-6400121c1a75。
如果您不能控制您的父映像,就像您依赖于官方ubuntu
映像时的情况一样,您可以编写一些工具来检测父映像标记或校验和中的更改(不是同一件事,标记是可变的),并相应地调用子映像构建。
发布于 2014-10-24 21:31:06
我们使用一个脚本来检查正在运行的容器是否使用最新的镜像启动。我们还使用upstart init脚本来启动docker镜像。
#!/usr/bin/env bash
set -e
BASE_IMAGE="registry"
REGISTRY="registry.hub.docker.com"
IMAGE="$REGISTRY/$BASE_IMAGE"
CID=$(docker ps | grep $IMAGE | awk '{print $1}')
docker pull $IMAGE
for im in $CID
do
LATEST=`docker inspect --format "{{.Id}}" $IMAGE`
RUNNING=`docker inspect --format "{{.Image}}" $im`
NAME=`docker inspect --format '{{.Name}}' $im | sed "s/\///g"`
echo "Latest:" $LATEST
echo "Running:" $RUNNING
if [ "$RUNNING" != "$LATEST" ];then
echo "upgrading $NAME"
stop docker-$NAME
docker rm -f $NAME
start docker-$NAME
else
echo "$NAME up to date"
fi
done
init看起来像
docker run -t -i --name $NAME $im /bin/bash
发布于 2016-03-17 03:41:36
一种“docker方式”是使用docker hub automated builds。当重建上游容器时,Repository Links功能将重建您的容器,并且Webhooks功能将向您发送通知。
看起来webhooks仅限于HTTP POST调用。你需要设置一个服务来捕获他们,或者使用其中一个帖子来发送电子邮件。
我还没有研究过它,但是新的Docker Universal Control Plane可能会有一个检测更新容器和重新部署的功能。
https://stackoverflow.com/questions/26423515
复制相似问题