GitLab CI/CD 之打包 Docker Image

2023/12/06閱讀時間約 3 分鐘
raw-image

前言

上次我們教到 Group Runner 使用方式,今天我們要教在 CI/CD 過程,自動打包 Docker Image 上去到我們的 Docker Registry,本次講解我們使用 Docker Hub 作為練習,透過 Gitlab CI/CD 自動上傳到 Docker Hub,我們會分成二到三節,如果有想學自架私有 Docker Registry 在我的的文章之前有交,我會在文章最後會提供連結可以參考

認識 Gitlab Container Registry

來到官方提供的 Gitlab 裡面,在我們之前的 DotNetCoreWebApiCiAndCdCourse 專案,左邊 Menu 的 Deploy 底下有一個叫做 Container Registry,這個是 Gitlab 有也有架一台 Docker Registry,指專門為 Gitlab 有作用存放 image

raw-image

由於因為我們要用自架的 Gitlab 做為練習,在設置 Container Registry 比較複雜,有機會做成補充教材,而我們今天先不用這個,我們人然使用 Docker Hub 作為上傳對象,今天我們先寫好 Dockerfile 部分

raw-image

打包 Docker Image

接下來我們開始來打包 Docker Image,我們在 DotNetCoreWebApiCiAndCdCourse 專案底下建立一個檔叫 Dockerfile,並撰寫 Dockerfile 腳本

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build-env

WORKDIR /app

COPY /DotNetCoreWebApiCiAndCdCourse/*.csproj ./

RUN dotnet restore

COPY . ./

RUN dotnet publish -c Release -o out

FROM mcr.microsoft.com/dotnet/aspnet:6.0

WORKDIR /DotNetCoreWebApiCiAndCdCourse

COPY --from=build-env /app/out .

ENV ASPNETCORE_URLS=http://+:5000
ENV ASPNETCORE_ENVIRONMENT=Production
ENV DOTNET_USE_POLLING_FILE_WATCHER=true

ENTRYPOINT ["dotnet", "DotNetCoreWebApiCiAndCdCourse.dll"]

接下來我們先手動打包,-t 後面是 [自己的 Docker Registry 帳密名稱]/[Image 名稱]

docker build -t timmmmmm/dotnetcorewebapiciandcdcourse .

再來我們 run 起本地服務,確認我們服啟動正常

docker run -d -p 5000:5000 timmmmmm/dotnetcorewebapiciandcdcourse

接著輸入我們 api 地址 http://127.0.0.1:5000/api/student/list/get 至瀏覽器,可以看見我們服務正常運行

raw-image

相關文章

blogger: 建立私有 Docker Registry

medium: 建立私有 Docker Registry

vocus: 建立私有 Docker Registry

10會員
48內容數
d3.js 圖形
留言0
查看全部
發表第一個留言支持創作者!