推送映像
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 之使用者的 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 Registry:
https://gcr.io/[PROJECT-ID]
,其中 [PROJECT-ID]
是 GCP 專案的名稱。
- Docker 識別碼:
_json_key
- Docker 密碼: 貼上 的內容
azure-pipelines-publisher-oneline.json
- 服務連線名稱:
gcrServiceConnection
選取 [ 儲存 ] 以建立服務連線