我正在尝试构建一个基于官方节点 docker 镜像的 docker 镜像,我想知道是否有某种方法可以在推送新版本的官方节点镜像时自动重建镜像。这样我的图像就不会基于过时的基础图像。
也许有类似 rss-feed 的方式,可以发布对官方图像的更新,以便我可以收听该提要?
或者是否有其他方法可以通过官方 docker-registry 上的新图像获得通知?
最佳答案
默认情况下,基础 Docker 镜像
的更新必须手动拉取并应用到每个正在运行的容器。
因此,您可能正在寻找第三方工具,例如 Watchtower ,它会自动检测 Docker 容器
的基础镜像的更新。
具体来说,上述工具会监视指定的 Docker 镜像存储库
以获取新的 Docker 镜像
推送。这个存储库可以是私有(private)的也可以是公共(public)的,并且托管在 Docker Hub 上。注册表或您自己的图像注册表。
在您的情况下,您可以创建一个 docker-compose
文件,如下所示:
version: "3"
services:
node:
image: node:fermium-alpine3.16
container_name: fahrecker-node-container
watchtower:
image: containrrr/watchtower
container_name: watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: fahrecker-node-container
最后,您还可以通过添加一些环境变量来启用电子邮件通知功能,如下所示:
environment:
WATCHTOWER_MONITOR_ONLY: 'true'
WATCHTOWER_NOTIFICATIONS: email
WATCHTOWER_NOTIFICATION_EMAIL_FROM: <EMAIL_FROM>
WATCHTOWER_NOTIFICATION_EMAIL_TO: <EMAIL_TO>
WATCHTOWER_NOTIFICATION_EMAIL_SERVER: smtp.provider.com
WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT: 587 (in most cases)
WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER: <YOUR_EMAIL>
WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD: <YOUR_PASSWORD>
关于新镜像版本的 Docker 通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74278365/