介绍
GitHub Actions 是一种用于自动化软件开发工作流程的工具。与其他 CI / CD 工具不同,它无需签署任何合同或购买许可证即可使用。这意味着您可以完全自定义操作,并在GitHub 的世界范围内共享它们。然而,为了实现可持续的软件开发流程,必须克服产生的挑战,如维护环境。
Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它使用 YAML 文件来配置应用程序服务的各种方面。它允许您隔离不同组件,同时保持它们高度可重现,并消除了环境和设置方面的潜在问题。
在本文中,我们将学习如何使用 Docker Compose 和 GitHub Actions 部署基于特定存储库的 CICD 系统。我们还将介绍如何使用一个示例项目演示这些概念。
准备工作
在本文中,我们将通过一些步骤在 GitHub 存储库中部署 CICD 系统。要执行这些步骤,您需要以下环境:
- Docker
- Docker Compose
- 一个 GitHub 存储库
如果您还没有 Docker 和 Docker Compose,请在他们的官方网站上找到适合您操作系统的适当版本,并按照说明进行安装。
创建/选择一个您希望在其中部署 CICD 的 GitHub 存储库(请确保它已经包含您的代码)。
配置 Docker Compose
第一步是配置 Docker Compose 文件。在根目录中创建一个名为 docker-compose.yml
的文件,文件内容如下:
-------- ----- --------- ---- --------------- --- ------ ----------- ------ - ----------- -------- - -------------- ------------ ------------ -------- --- -- ---- ------- -- --- --- ------
请注意,此文件指定了一个服务,该服务由标准 node:latest
映像启动,并运行 npm install
和 npm run start
命令。
在文件中,指定了一个名为 app
的服务,并使用 container_name
和 image
参数定义它。此外,使用 ports
参数将容器绑定到 3000 端口,并使用 volumes
参数将主机上的当前目录(.
)挂载为容器的 /usr/src/app
目录。然后,使用 working_dir
参数定义工作目录和 command
参数指定要执行的命令。
创建 GitHub 操作工作流程
现在,我们需要在 GitHub 存储库中创建“actions”文件夹,并在其中创建一个名为 build.yml
的文件。
在 build.yml
文件中,输入以下代码:
----- ----- --- ------ --- ----- --------- - ------ ----- ------ -------- ------------- ------ - ----- ----- --- --- ---- ----- ------------------- - ----- ----- --- ------ ----- ----- --------------------------- ----- --------- --- ------------------------- -- --------- --- ------------------------- -- ----------- ----------------------- ------------- ---- - ----- ---- ------ ----- ----- --------------------------- ----- --------- --- ------------------------- -- --------- --- ------------------------- -- ----------- ----------------------- ------------- ---- ----- ----
请注意,此工作流程在将代码推送到 master 分支时运行,它有一个单独的 job 名称为 build
,该 job 将在 ubuntu-latest 上运行,其中包含三个步骤。第一个步骤使用 actions/checkout@v2
检查存储库代码。第二个步骤使用 docker/build-push-action@v2
构建 Docker 镜像。最后一个步骤使用相同的 docker/build-push-action@v2
将 Docker 镜像推送到相关 Docker 镜像仓库。
配置 GitHub 的机密
将密码直接嵌入您的代码是一个可怕的做法。GitHub 提供了一个名为“机密”(secrets)的功能,该功能可让您存储机密数据(例如密码、令牌等),而不必将其嵌入代码中。
为了将 Docker 镜像推送到 Docker 注册表,我们需要将 Docker 注册表的用户名和密码存储在 GitHub 机密中。
如果您还没有设置机密,请在 GitHub 存储库“设置”中进行设置。选择“机密”选项卡,然后添加两个机密 REGISTRY_USERNAME
和 REGISTRY_PASSWORD
,并将其与您的 Docker 注册表用户名和密码相关联。
测试
一旦您完成了上述操作,您就可以尝试将代码推送到 master 分支并观察 CICD 流程。请注意,此时 Docker Compose 文件中只有一个服务,因此该文件非常简单。您可以添加更多服务和更具备由 Docker Compose 所提供的更高级别的配置。
结论
在本文中,我们学习了如何使用 Docker Compose 和 GitHub Actions 创建基于 Docker 的 CICD 系统。我们创建了一个使用 Docker Compose 配置的服务,将其打包到 Docker 映像中,并通过 GitHub Actions 实现了部署和推送 Docker 映像的过程。通过这些步骤,我们可以在几分钟内轻松地将基于特定存储库的 CICD 集成到 GitHub 中。
示例代码可在以下存储库中找到:https://github.com/yourname/your-repo。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6724469d2e7021665e12e010