如何使用 GitHub Actions 構(gòu)建 Docker 鏡像
本文將幫助您使用GitHub操作設(shè)置一個工作流,該工作流將構(gòu)建和標(biāo)記Docker鏡像并將其推送到Docker Hub注冊表。
創(chuàng)建 GitHub Repo
讓我們從創(chuàng)建一個新的GitHub存儲庫開始,它將保存我們的代碼(在我們的例子中,實際上只需要一個Dockerfile)來構(gòu)建鏡像。在GitHub中創(chuàng)建repo,并將其命名為您想要的任何名稱。在repo的根目錄中添加一個文件,名為Dockerfile。如果你沿著我,你將構(gòu)建一個包含Angular CLI的鏡像。如果你需要一個不同的鏡像,那么修改以下內(nèi)容以滿足你的需求。Dockerfile的內(nèi)容應(yīng)該是:
# ./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創(chuàng)建GitHub Action
因此,要開始使用GitHub操作,請在GitHub中的repo頁面上單擊Actions選項卡:
圖片
您現(xiàn)在應(yīng)該看到一個類似于以下內(nèi)容的頁面:
圖片
這一步將我們登錄到Docker Hub Registry。我們輸出密碼,然后將其傳遞給docker login命令。不過,這里有一些新的東西,那就是我們正在使用的秘密。GitHub在每個存儲庫的設(shè)置中有一個部分,您可以在其中設(shè)置用于GitHub操作等的秘密。
這很棒,因為否則就沒有辦法登錄到第三方服務(wù),如Docker Hub,而不把你的密碼或訪問密鑰放在倉庫中,每個人都可以看到。要找到secrets,請單擊存儲庫頂部的設(shè)置,然后單擊左側(cè)導(dǎo)航列表中的Secrets,然后添加您需要的secrets,在本例中是我們的Docker Hub用戶名和密碼:
圖片
標(biāo)簽和發(fā)布
最后一步是在我們的GitHub存儲庫中標(biāo)記一個版本。這將啟動我們的工作流程的構(gòu)建。要做到這一點,點擊代碼標(biāo)簽下的releases部分:
圖片
點擊“Draft a new release”按鈕。GitHub將引導(dǎo)您完成創(chuàng)建發(fā)布的步驟,但您應(yīng)該選擇標(biāo)記名稱和所需的發(fā)布提交。您還可以添加標(biāo)題和說明。記住兩件事:您在這里使用的標(biāo)簽名稱將用作Docker鏡像的標(biāo)簽名稱,一旦您單擊“發(fā)布版本”按鈕,工作流將啟動。一旦你準(zhǔn)備好了,發(fā)布新版本!
查看工作流輸出
要查看工作流中發(fā)生的情況,并在需要時進行調(diào)試,請返回到存儲庫中的Actions選項卡。一旦你創(chuàng)建了一個動作,該頁面將看起來像這樣:
圖片
除了在Actions選項卡中輸出您的工作流之外,不要忘記轉(zhuǎn)到Docker Hub并在那里查看您的圖像!





























