315 字
2 分鐘
Azure DevOps 部署到 GKE (6) — Build Image
本篇將說明如何在Azure Pipelines打包dockerfile,並將image上傳到Google Artifact Registry上。建議先閱讀完Azure DevOps 部署到 VM,較能熟悉的操作Azure DevOps。
建立Azure DevOps Project
先建立一個空白的repo,並使用上一篇文產生的服務帳戶JSON檔,將JSON檔上傳到Pipelines > Library > Secure files

到git repo新增檔案Dockerfile
FROM nginx:1.23.1
RUN echo "Hello World" > /usr/share/nginx/html/index.html在repo新增一個azure-pipelines.yml,語法說明如下:
- DownloadSecureFile@1取得GCP服務帳號的secret,secureFile輸入剛剛上傳檔案的檔名
- 使用gcloud登入後,取得registry的權限
- 再來使用微軟提供Docker@2語法做docker build & push,repository填入registry存放區目標,
trigger:- main
resources:- repo: self
variables: tag: '$(Build.BuildNumber)'
stages:- stage: Build displayName: Build image jobs: - job: Build displayName: Build pool: vmImage: ubuntu-latest steps: - task: DownloadSecureFile@1 name: GCPsecret displayName: 'Download CA certificate' inputs: secureFile: 'a.json' - script: | gcloud auth login --cred-file $(GCPsecret.secureFilePath) gcloud auth configure-docker --quiet asia-east1-docker.pkg.dev - task: Docker@2 displayName: Build image and push inputs: command: buildAndPush dockerfile: '$(Build.SourcesDirectory)/Dockerfile' repository: asia-east1-docker.pkg.dev/it-production-377006/nginx/b tags: | $(tag)執行Pipelines
再來到Pipelines選擇這個repo,並開始跑pipeline,跑完後就成功上傳到Google Artifact Registry

再來到GCP後台,就可以看到已經上傳的image

結語
我們將gcloud語法整合到Azure DevOps Pipelines,就可以簡單又快速的完成上傳docker images。