如何使用 GitHub Actions 構建 Docker 鏡像
本文將幫助您使用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并在那里查看您的圖像!