GitLab CI/CD 之打包 Docker 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"]

接下來我們先手動打包

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

留言

此網誌的熱門文章

Gitlab CI/CD 之 Group Runner

Docker 之如何安裝 Docker 容器

Docker 之初體驗