每当我将新版本推送到我的私有注册表时,我想运行一个 docker watchtower 来自动升级我的 docker 容器。
但是,瞭望塔在我的私人注册表中找不到容器。
有谁知道如何使用私有 docker 注册表运行瞭望塔?
每当我将新版本推送到我的私有注册表时,我想运行一个 docker watchtower 来自动升级我的 docker 容器。
但是,瞭望塔在我的私人注册表中找不到容器。
有谁知道如何使用私有 docker 注册表运行瞭望塔?
守望台的维护者和开发者在这里。实际上,我们确实支持使用私有注册表。这是通过使用完全限定名称作为图像名称来完成的,即。example.com/my-org/my-image:my-tag
,以及在瞭望塔容器根目录挂载 config.json。
请参阅文档,特别是https://containrrr.github.io/watchtower/usage-overview/
文档可能会更清晰,如果您对这项任务感到满意,请在完成工作后随时改进它们。
谢谢,西蒙
更新:虽然这种方法可能仍然有效,但瞭望塔对此提供了原生支持。
Watchtower 目前仅支持 Docker Hub 私有注册表,不支持 Quay 或 Gitlab 等非现场注册表。
另一种方法可能是使用webhook之类的东西,并从您使用的任何 CI/CD 平台向端点发送 HTTP 请求。
这样,您无需检查更新,而是可以在进行更改时 ping 端点并自动更新。它是推而不是拉,但它可以达到类似的效果。
运行 Web 服务器之类的示例脚本可能是:
#!/bin/bash
docker pull [your-registry][repo]:latest
docker stop [repo-name]
docker rm [repo-name]
docker run -d --name [repo-name] -p 80:4000 --restart always [your-registry][repo]:latest
这不是最巧妙的部署方法。您可能最好在生产中使用专门的 CI/CD 提供程序,它可以更好地协调构建、测试和部署管道。但这是生成登台服务器的一种快速而肮脏的方式。