推送时自动部署 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 镜像的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Ansible自动化部署Docker镜像

如何使用Ansible自动化部署Docker镜像

真香,GitLab 和 Docker自动化部署SpringBoot应用

EB:从 Docker Hub 自动部署新的 Docker 镜像构建

搭建自动化代码发布系统

Springboot docker jenkins 自动化部署并上传镜像