Docker + GitHub Actions 持续集成工作流
前言
本文讲解如何使用 GitHub Actions
配合 Docker
进行开发部署过程中的持续集成工作流。
这里默认您已编写好项目的 Dockerfile
文件,Dockerfile 的写法可通过我前面的文章进行学习:Docker 快速部署 Node express 项目
至于为什么使用 GitHub Actions,这里引用官方:
在 GitHub Actions 的仓库中自动化、自定义和执行软件开发工作流程。 您可以发现、创建和共享操作以执行您喜欢的任何作业(包括 CI/CD),并将操作合并到完全自定义的工作流程中。
手动构建镜像并推送到阿里云
我们目前的工作流是 更新代码 + 构建镜像 + 提交镜像 + 服务器pull镜像 + 启动容器
。
GitHub Actions 并不推荐操作服务器内容,所以这里我们也分为两部分工作,前一部分为 更新代码 + 构建镜像 + 提交镜像
。这里先看看 手动构建镜像并推送到阿里云 是怎样操作的:
使用 GitHub Actions 代替
以上步骤虽然也不复杂,不过当提交和推送代码到git仓库后需要手动操作。
使用 GitHub Actions 只需要第一次设置,就可以在每次推送代码到git仓库的时候 自动构建和推送最新镜像。
1、创建Actions文件
当然,GitHub Actions 基于 git 仓库。
在自己项目的 git 仓库中,选择 Actions 菜单点击 set up a workflow yourself ->
自动创建 yml 文件。
也可以在IDE中 项目根目录下 手动创建 .github/workflows
目录,新建 name.yml 文件(name随意名字,可以工作流功能取名)。
2、选择工作流模板
与 Docker 有关,在 git marketplace 中 查找 docker actions,找到了一项非常符合我们的工作流模板 Build and push Docker images
进入模板详情复制代码到 name.yml 文件中,并加以修改。
查看工作流日志
工作流触发后,可在 GitHub Actions 中查看日志。
绿色√标记说明已完成并且成功。
部署到服务器
进入服务器终端,启动 Docker 容器
致谢
GitHub Actions 文档:https://docs.github.com/cn/actions/reference/workflow-syntax-for-github-actions