推送映像
Azure DevOps Services
使用 Azure Pipelines 將您的映射推送至容器登錄,例如 Azure Container Registry、Docker Hub 或 Google Container Registry。 Azure Container Registry 是以開放原始碼 Docker Registry 2.0 為基礎的受控登錄服務。
如需建置映射並將其推送至容器登錄的教學課程,請參閱 建置 Docker 映射並將其推送至 Azure Container Registry。
若要瞭解如何建置容器映射以使用 Azure Pipelines 進行部署,請參閱 建置容器映射以部署應用程式。
關於 Docker 工作
您將使用 Docker@2工作 來建置或推送 Docker 映射、登入或註銷、啟動或停止容器,或執行 Docker 命令。
此工作會使用 Azure Container Registry 的 Docker 登錄服務連線來登入並推送至容器登錄。 建立 Docker 登錄服務連線的程式會根據您的登錄而有所不同。
Docker 登錄服務聯機會將認證儲存至容器登錄,再推送映射。 您也可以直接參考 Docker 中的服務連線,而不需要額外的腳本工作。
建立 Docker 服務連線
您必須遵循不同的程式,為 Azure Container Registry、Docker Hub 和 Google Container Registry 建立服務連線。
使用 Azure Container Registry 選項時,訂用帳戶(與登入 Azure DevOps 之使用者的Microsoft Entra 身分識別相關聯)和訂用帳戶內的容器登錄可用來建立服務連線。
當您為包含 Dockerfile 的存放庫建立新的管線時,Azure Pipelines 會在存放庫中偵測 Dockerfile。 若要啟動此程式,請建立新的管線,並使用您的 Dockerfile 選取存放庫。
從 [設定] 索引標籤中,選取 Docker - 建置並將映射推送至 Azure Container Registry 工作。
選取您的 Azure 訂用帳戶,然後選取 [ 繼續]。
從下拉功能表中選取您的容器登錄,然後將映像名稱提供給容器映像。
選取 [ 驗證],然後在 完成時進行設定。
當 Azure Pipelines 建立管線時,它會:
如需更詳細的概觀,請參閱 建置並推送至 Azure Container Registry 檔。
選擇 [Docker 登錄服務連線] 底下的 [Docker Hub] 選項,並提供您的使用者名稱和密碼來建立 Docker 服務連線。
若要建立與 Google Container Registry 相關聯的 Docker 服務連線:
在 GCP 控制台中開啟您的專案,然後開啟 Cloud Shell
若要節省時間,請輸入您的項目識別碼和計算引擎區域選項,請執行下列命令來設定預設組態值:
gcloud config set project [PROJECT_NAME]
gcloud config set compute/zone [ZONE]
[PROJECT_NAME]
取代為 GCP 項目名稱,並以您要用來建立資源的區域名稱取代 [ZONE]
。 如果您不確定要挑選哪個區域,請使用 us-central1-a
。 例如:
gcloud config set project azure-pipelines-test-project-12345
gcloud config set compute/zone us-central1-a
為您的項目啟用 Container Registry API:
gcloud services enable containerregistry.googleapis.com
建立 Azure Pipelines 的服務帳戶以發佈 Docker 映射:
gcloud iam service-accounts create azure-pipelines-publisher --display-name "Azure Pipelines Publisher"
將記憶體管理員 IAM 角色指派給服務帳戶:
PROJECT_NUMBER=$(gcloud projects describe \
$(gcloud config get-value core/project) \
--format='value(projectNumber)')
AZURE_PIPELINES_PUBLISHER=$(gcloud iam service-accounts list \
--filter="displayName:Azure Pipelines Publisher" \
--format='value(email)')
gcloud projects add-iam-policy-binding \
$(gcloud config get-value core/project) \
--member serviceAccount:$AZURE_PIPELINES_PUBLISHER \
--role roles/storage.admin
產生服務帳戶金鑰:
gcloud iam service-accounts keys create \
azure-pipelines-publisher.json --iam-account $AZURE_PIPELINES_PUBLISHER
tr -d '\n' < azure-pipelines-publisher.json > azure-pipelines-publisher-oneline.json
點選 Cloud Shell 右上角的按鈕來啟動程式代碼編輯器:
開啟 named azure-pipelines-publisher-oneline.json
檔案。 您需要下列其中一個步驟中此檔案的內容:
在您的 Azure DevOps 組織中,選取 [項目設定 ],然後選取 [ 管線 -> 服務連線]。
選取 [新增服務連線 ],然後選擇 [Docker 登錄]
在對話框中,輸入下列欄位的值:
- Docker 登錄:
https://gcr.io/[PROJECT-ID]
,其中 [PROJECT-ID]
是 GCP 項目的名稱。
- Docker 識別碼:
_json_key
- Docker 密碼: 貼上 的內容
azure-pipelines-publisher-oneline.json
- 服務連線名稱:
gcrServiceConnection
選取 [ 儲存 ] 以建立服務連線