使用 GitHub Actions 自動化您的構建
先決條件
完成本指南的所有先前部分,從將 Ruby on Rails 應用程式容器化開始。您必須擁有一個 GitHub 賬戶和一個 Docker 賬戶才能完成此部分。
如果您尚未為專案建立 GitHub 儲存庫,現在是時候了。建立儲存庫後,不要忘記新增遠端並確保您可以提交併推送您的程式碼到 GitHub。
在您的專案 GitHub 儲存庫中,開啟設定,然後轉到秘密和變數 > Actions。
在變數選項卡下,建立一個名為
DOCKER_USERNAME
的新儲存庫變數,並以您的 Docker ID 作為值。為 Docker Hub 建立一個新的個人訪問令牌 (PAT)。您可以將此令牌命名為
docker-tutorial
。確保訪問許可權包括讀和寫。將 PAT 作為 Repository secret 新增到您的 GitHub 倉庫中,名稱為
DOCKERHUB_TOKEN
。
概述
GitHub Actions 是內置於 GitHub 中的 CI/CD(持續整合和持續部署)自動化工具。它允許您在發生特定事件(例如,推送程式碼、建立拉取請求等)時為構建、測試和部署程式碼定義自定義工作流。工作流是一個基於 YAML 的自動化指令碼,它定義了觸發時要執行的一系列步驟。工作流儲存在儲存庫的 .github/workflows/
目錄中。
在本節中,您將學習如何設定和使用 GitHub Actions 來構建您的 Docker 映象並將其推送到 Docker Hub。您將完成以下步驟:
- 定義 GitHub Actions 工作流程。
- 執行工作流程。
1. 定義 GitHub Actions 工作流
您可以透過在儲存庫的 .github/workflows/
目錄中建立 YAML 檔案來建立 GitHub Actions 工作流。為此,請使用您喜歡的文字編輯器或 GitHub Web 介面。以下步驟向您展示如何使用 GitHub Web 介面建立工作流檔案。
如果您更喜歡使用 GitHub Web 介面,請按照以下步驟操作:
前往您在 GitHub 上的倉庫,然後選擇 Actions 選項卡。
選擇 set up a workflow yourself。
這會將您帶到一個頁面,用於在您的儲存庫中建立新的 GitHub Actions 工作流檔案。預設情況下,該檔案建立在
.github/workflows/main.yml
下,我們將其名稱更改為build.yml
。
如果您更喜歡使用文字編輯器,請在您的儲存庫的 .github/workflows/
目錄中建立一個名為 build.yml
的新檔案。
將以下內容新增到檔案中
name: Build and push Docker image
on:
push:
branches:
- main
jobs:
build_and_push:
runs-on: ubuntu-latest
steps:
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ vars.DOCKER_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push
uses: docker/build-push-action@v6
with:
push: true
tags: ${{ vars.DOCKER_USERNAME }}/${{ github.event.repository.name }}:latest
每個 GitHub Actions 工作流包含一個或多個作業。每個作業由多個步驟組成。每個步驟可以執行一組命令,也可以使用已存在的動作。上面的動作有三個步驟:
登入 Docker Hub:此操作使用您之前建立的 Docker ID 和個人訪問令牌 (PAT) 登入 Docker Hub。
設定 Docker Buildx:此操作設定 Docker Buildx,這是一個擴充套件 Docker CLI 功能的 CLI 外掛。
構建並推送:此操作構建 Docker 映象並將其推送到 Docker Hub。`tags` 引數指定映象名稱和標籤。在此示例中使用了 `latest` 標籤。
2. 執行工作流
讓我們提交更改,並將它們推送到 `main` 分支。在上面的工作流中,觸發器設定為 `main` 分支上的 `push` 事件。這意味著每次您將更改推送到 `main` 分支時,工作流都將執行。您可以在此處找到有關工作流觸發器的更多資訊。
轉到您的 GitHub 儲存庫的Actions選項卡。它顯示了工作流。選擇工作流將顯示所有步驟的詳細資訊。
當工作流完成後,前往您的Docker Hub 上的倉庫。如果您在該列表中看到新的倉庫,則表示 GitHub Actions 工作流已成功將映象推送到 Docker Hub。
摘要
在本節中,您學習瞭如何為您的 Ruby on Rails 應用程式設定 GitHub Actions 工作流。
相關資訊
後續步驟
在下一節中,您將學習如何使用容器開發您的應用程式。