1

我想使用伙伴管道将新图像推送到 DockerHub。推送新镜像时,Google Container Optimized OS 应该拉取新镜像。我正在使用谷歌计算机引擎在谷歌容器优化操作系统上托管 docker-compose。我怎样才能做到这一点?

4

1 回答 1

2

假设你在 docker-compose 中使用 ':latest' 标签,当你运行这个时,总是会拉取最新版本的镜像:

docker-compose down && docker-compose build --pull && docker-compose up
(请注意,在拉取容器映像时,升级可能会导致非常轻微的停机时间)

这可以与 Docker Hub 的 webhook 支持相结合,以便在推送新映像时运行此命令。请参阅https://docs.docker.com/docker-hub/webhooks/
您需要一些端点来接收来自 webhook 的 POST 调用并执行命令,例如:https ://github.com/adnanh/webhook

可以将其配置为 HTTP 端点,以便在推送新映像时从 Docker Hub 接收 webhook,以运行上述命令。出于安全原因,我建议使用 HTTPS 端点,以及只允许来自 Amazon ELB IP 的流量的传入 webhook 的 IP 白名单(因为这是 DockerHub 使用的)。此外,您可能需要验证回调 URL 是否来自https://registry.hub.docker.com/
不幸的是,DockerHub 还不支持使用秘密来验证调用者:https ://github.com/docker/roadmap/issues/51

于 2020-11-26T09:08:59.467 回答