推送时自动部署 docker 镜像
Posted
技术标签:
【中文标题】推送时自动部署 docker 镜像【英文标题】:Auto deploy docker images on push 【发布时间】:2022-01-21 15:07:29 【问题描述】:首先,我不熟悉持续部署。我目前有一个运行 3 个 docker 容器(Flask、MongoDb、nginx)的 VPS,我使用 docker-compose 从 DockerHub 中提取这些容器。我想要做的是在我的 github 存储库中推送一些代码时自动部署这 3 个容器。我认为 Ansible 可以,但我从未使用过。
有人可以解释我该怎么做吗? 非常感谢!
【问题讨论】:
听起来是一个很好的 webhook 用例。 Docker 集线器可以向您的 VPS 上的某个服务端点发送一个帖子,触发上拉/上拉。 @mathis 知道 Github Actions 是什么吗? docs.github.com/en/actions/publishing-packages/… 最后我会使用 Jenkins :) @phd 这仅用于在 DockerHub 上发布,不用于在 VPS 上自动部署 【参考方案1】:最后我会使用 Jenkins :)
这意味着一个 webhook,正如 Guy Salton
在“How to Integrate Your GitHub Repository to Your Jenkins Project”中所解释的那样这意味着您的 Jenkins 服务器可以通过面向 Internet 的公共 URL 访问,这在公司环境中工作时并不总是显而易见的。
GitHub Actions "Publishing Docker images" 可以帮助将图像发布到 DockerHub,但您仍然需要侦听/检测这些事件,以便您的 Jenkins 触发作业拉取所述 ppublished 图像。
为此,使用 regclient/regclient
的常规调度程序 Jenkins 作业可以帮助检查最新发布的 SHA2 映像 ID 是否已更改。
使用“Container Registry Management with Brandon Mitchell: DevOps and Docker (Ep 108)”查看更多信息。
【讨论】:
以上是关于推送时自动部署 docker 镜像的主要内容,如果未能解决你的问题,请参考以下文章
真香,GitLab 和 Docker自动化部署SpringBoot应用