前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GitHub Actions构建Docker镜像

GitHub Actions构建Docker镜像

作者头像
DevOps云学堂
发布2020-05-22 18:05:50
2.4K0
发布2020-05-22 18:05:50
举报
文章被收录于专栏:DevOps持续集成DevOps持续集成

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.

代码语言:javascript
复制
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/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DevOps持续集成 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 创建项目并添加workflow文件
  • 2. 编写流水线
  • 3. 添加秘钥
  • 4. 检查工作流执行和镜像
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档