GitHub Actions构建Docker镜像

GitHub Actions是为GitHub上的项目添加CI / CD工作流的自动化工具。注意:在本文中,我们将讨论将CI / CD工作流程集成到使用Docker的项目中的各个步骤。在使用docker的项目中,我们将重点介绍GitHub动作配置-Docker的基本知识及其用途不在本文范围之内。

本教程假定您知道docker的工作原理,并有一个使用它的项目。确保您Dockerfile 在项目的根文件夹中。这里使用的示例项目是一个非常基本的项目,只有一个Python文件。完整的代码可以从github仓库中下载。

首先,我们将介绍在项目中配置GitHub操作所需的基本步骤。这对于在任何平台上运行的所有项目都是常见的。

1. 创建项目并添加workflow文件

显而易见的第一步是创建GitHub项目并将Flutter项目与存储库连接。应该能够在拉取请求旁边看到项目的新Actions 选项卡 。

GitHub为许多最受欢迎的平台提供了预定义的工作流,您还可以在可视化编辑器中自定义或创建全新的工作流。不过,在这个项目中,我们将采用手动方法命令创建YAML文件来使用工作流。

在Pytho项目的根文件夹中,创建一个新文件夹.github并创建子文件夹workflows。这是我们的工作流YAML文件所在的位置。

一个项目可以有多个工作流文件,例如构建,发行等,但是为了简单起见,我们将仅对该项目使用一个文件。main.yml在工作流文件夹中创建一个名为的最终文件:

2. 编写流水线

现在,我们必须在main.yml文件中添加命令以执行所需的操作。这是的完整代码main.yml.

1 name: Build and Publish Docker
  2 on: [push]
  3 jobs:
  4   build:
  5     runs-on: ubuntu-latest
  6     steps:
  7     - uses: actions/checkout@master
  8     - name: Publish to Docker Repository
  9       uses: elgohr/Publish-Docker-Github-Action@master
 10       with:
 11         name: ispeakcode/docker-githubaction
 12         username: ${{ secrets.DOCKER_USERNAME }}
 13         password: ${{ secrets.DOCKER_PASSWORD }}

为了更好地理解,我们将仔细研究每一行及其用法:

line 1:要显示在“actions”选项卡中的工作流的名称。

line 2:当某人将代码推送到我们的仓库时,触发我们的工作流程。

lines 3–6:我们正在定义一项持续进行的工作ubuntu-latest。每个作业都在虚拟环境的新实例中运行。一份工作可以包含一个或多个steps

line 7:这是我们工作流程的第一步。我们使用名为checkout的GitHub Action从存储库中提取源代码该操作将您的存储库签出到$GITHUB_WORKSPACE,以便您的工作流可以访问存储库的内容。

lines 8–9:这里我们使用GitHub动作publish docker它构建一个docker镜像并将其推送到docker hub。

lines 8–9:这里我们定义了推送到docker hub所需的参数:

  • name是您要推送到docker hub的映像或存储库的名称。

  • username registry的登录用户名(docker hub用户名)。

  • password registry 的登录密码(docker hub密码)。


3. 添加秘钥

您可能会想知道:我们不能在yml文件中直接提及用户名和密码,因为这对安全性非常不利。因此,我们将这些凭据添加到我们项目的秘密中。要添加此代码,请转到您的项目的存储库设置/settings/secrets。在“ 秘密”选项卡中,从工作流文件(*DOCKER_USERNAME**DOCKER_PASSWORD*)中添加具有相同名称的秘密密钥,然后粘贴以下值:

就这样-提交您的代码并推送它。这将触发docker构建并自动推送映像-在几分钟之内,具体取决于您的项目大小。

4. 检查工作流执行和镜像

推送代码后,您可以通过以下步骤检查工作流的执行情况,/actions并通过以下步骤查看图像:https://cloud.docker.com/repository/



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值