推送映像
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 命令。
工作會使用 Docker 登錄服務連線 來登入並推送至容器登錄。 建立 Docker 登錄服務連線的程式會根據您的登錄而有所不同。
Docker 登錄服務連線會先將認證儲存至容器登錄,再推送映射。 您也可以直接參考 Docker 中的服務連線,而不需要額外的腳本工作。
建立 Docker 服務連線
您必須遵循不同的程式來建立Azure Container Registry、Docker Hub和 Google Container Registry 的服務連線。
使用 [Azure Container Registry] 選項時,訂用帳戶 (與已登入 Azure DevOps) 的使用者 Azure Active Directory 身分識別相關聯的訂用帳戶,以及訂用帳戶內的容器登錄,可用來建立服務連線。
當您為包含 Dockerfile 的存放庫建立新的管線時,Azure Pipelines 會在存放庫中偵測 Dockerfile。 若要啟動此程式,請建立新的管線,並使用您的 Dockerfile 選取存放庫。
從 [設定] 索引標籤中,選取[Docker - 建置] 並將映射推送至Azure Container Registry工作。
選取您的 Azure 訂用帳戶,然後選取 [繼續]。
從下拉式功能表中選取 您的容器登錄 ,然後將 映射名稱 提供給容器映射。
選取 [ 驗證並 設定完成時]。
當 Azure Pipelines 建立管線時,它會:
如需更詳細的概觀,請參閱建置和推送至 Azure Container Registry 檔。
若要建立與 Google Container Registry 相關聯的 Docker 服務連線:
在 GCP 主控台中開啟您的專案,然後開啟 Cloud Shell
若要節省時間輸入專案識別碼和計算引擎區域選項,請執行下列命令來設定預設組態值:
gcloud config set project [PROJECT_NAME]
gcloud config set compute/zone [ZONE]
以 GCP 專案的名稱取代 [PROJECT_NAME]
,並以您要用來建立資源的區功能變數名稱稱取代 [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 Registry:
https://gcr.io/[PROJECT-ID]
,其中 [PROJECT-ID]
是 GCP 專案的名稱。
- Docker 識別碼:
_json_key
- Docker 密碼: 貼上 的內容
azure-pipelines-publisher-oneline.json
- 服務連線名稱:
gcrServiceConnection
選取 [儲存 ] 以建立服務連線