更新於 2024/12/05閱讀時間約 3 分鐘

GitLab CI/CD 之打包 Docker Image

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

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

打包 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 至瀏覽器,可以看見我們服務正常運行

相關文章

blogger: 建立私有 Docker Registry

medium: 建立私有 Docker Registry

vocus: 建立私有 Docker Registry

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.