當前位置: 妍妍網 > 碼農

如何使用 GitHub Actions 構建 Docker 映像

2024-02-20碼農

本文將幫助您使用GitHub操作設定一個工作流,該工作流將構建和標記Docker映像並將其推播到Docker Hub登錄檔。

建立 GitHub Repo

讓我們從建立一個新的GitHub儲存庫開始,它將保存我們的程式碼(在我們的例子中,實際上只需要一個Dockerfile)來構建映像。在GitHub中建立repo,並將其命名為您想要的任何名稱。在repo的根目錄中添加一個檔,名為Dockerfile。如果你沿著我,你將構建一個包含Angular CLI的映像。如果你需要一個不同的映像,那麽修改以下內容以滿足你的需求。Dockerfile的內容應該是:

# ./Dockerfile
FROM node:12-alpine as node-angular-cli
LABEL authors="Tinywan"
# Linux setup
# I got this from another, deprecated Angular CLI image.
# I trust that developer, so I continued to use this, but you
# can leave it out if you want.
RUN apk update \
&& apk add --update alpine-sdk \
&& apk del alpine-sdk \
&& rm -rf /tmp/* /var/cache/apk/* *.tar.gz ~/.npm \
&& npm cache verify \
&& sed -i -e "s/bin\/ash/bin\/sh/" /etc/passwd

# Angular CLI
RUN npm install -g @angular/cli@8

建立GitHub Action

因此,要開始使用GitHub操作,請在GitHub中的repo頁面上單擊 Actions 索引標籤:

您現在應該看到一個類似於以下內容的頁面:

這一步將我們登入到Docker Hub Registry。我們輸出密碼,然後將其傳遞給docker login命令。不過,這裏有一些新的東西,那就是我們正在使用的秘密。GitHub在每個儲存庫的設定中有一個部份,您可以在其中設定用於GitHub操作等的秘密。

這很棒,因為否則就沒有辦法登入到第三方服務,如Docker Hub,而不把你的密碼或存取金鑰放在倉庫中,每個人都可以看到。要找到secrets,請單擊儲存庫頂部的設定,然後單擊左側導航列表中的Secrets,然後添加您需要的secrets,在本例中是我們的Docker Hub使用者名稱和密碼:

標簽和釋出

最後一步是在我們的GitHub儲存庫中標記一個版本。這將啟動我們的工作流程的構建。要做到這一點,點選程式碼標簽下的 releases 部份:

點選「Draft a new release」按鈕。GitHub將引導您完成建立釋出的步驟,但您應該選擇標記名稱和所需的釋出送出。您還可以添加標題和說明。記住兩件事:您在這裏使用的標簽名稱將用作Docker映像的標簽名稱,一旦您單擊「釋出版本」按鈕,工作流將啟動。一旦你準備好了,釋出新版本!

檢視工作流輸出

要檢視工作流中發生的情況,並在需要時進行偵錯,請返回到儲存庫中的Actions索引標籤。一旦你建立了一個動作,該頁面將看起來像這樣:

除了在Actions索引標籤中輸出您的工作流之外,不要忘記轉到Docker Hub並在那裏檢視您的影像!