調整「將 Docker 映像發佈到 AmazonECR」樣本以推送到 Docker 集線器 - AWS CodeBuild

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

調整「將 Docker 映像發佈到 AmazonECR」樣本以推送到 Docker 集線器

要調整「將 Docker 映像發佈到 AmazonECR」示例,以便將 Docker 映像推送到 Docker Hub 而不是 AmazonECR,請編輯示例的代碼。如需有關範例的詳細資訊,請參閱「將 Docker 映像發佈到 Amazon 圖像存儲庫」ECR 示例 CodeBuild運行「將 Docker 映像發佈到 AmazonECR」示例

注意

如果您使用的是 17.06 之前的 Docker 版本,請移除 --no-include-email 選項。

  1. 替換buildspec.yml文件中的這些 Amazon ECR 特定的代碼行:

    ... pre_build: commands: - echo Logging in to Amazon ECR... - aws ecr get-login-password --region $AWS_DEFAULT_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com build: commands: - echo Build started on `date` - echo Building the Docker image... - docker build -t $IMAGE_REPO_NAME:$IMAGE_TAG . - docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG post_build: commands: - echo Build completed on `date` - echo Pushing the Docker image... - docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG ...

    換成 Docker Hub 專用的這幾行程式碼:

    ... pre_build: commands: - echo Logging in to Docker Hub... # Type the command to log in to your Docker Hub account here. build: commands: - echo Build started on `date` - echo Building the Docker image... - docker build -t $IMAGE_REPO_NAME:$IMAGE_TAG . - docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $IMAGE_REPO_NAME:$IMAGE_TAG post_build: commands: - echo Build completed on `date` - echo Pushing the Docker image... - docker push $IMAGE_REPO_NAME:$IMAGE_TAG ...
  2. 將編輯過的程式碼上傳至 S3 輸入儲存貯體或 AWS CodeCommit GitHub、或 Bitbucket 儲存庫。

    重要

    請勿上傳 (root directory name),僅上傳 (root directory name) 內的檔案即可。

    如果您使用 S3 輸入儲存貯體,請務必建立包含ZIP檔案的檔案,然後將其上傳到輸入儲存貯體。不要添加(root directory name)到文ZIP件中,只添加其中的文件(root directory name)

  3. 將這些代碼從 JSON-formatted 輸入替換為命create-project令:

    ... "environmentVariables": [ { "name": "AWS_DEFAULT_REGION", "value": "region-ID" }, { "name": "AWS_ACCOUNT_ID", "value": "account-ID" }, { "name": "IMAGE_REPO_NAME", "value": "Amazon-ECR-repo-name" }, { "name": "IMAGE_TAG", "value": "latest" } ] ...

    換成這幾行程式碼:

    ... "environmentVariables": [ { "name": "IMAGE_REPO_NAME", "value": "your-Docker-Hub-repo-name" }, { "name": "IMAGE_TAG", "value": "latest" } ] ...
  4. 建立組建環境、執行組建,以及檢視相關的組建資訊。

  5. 確認 AWS CodeBuild 已成功將 Docker 映像檔推送至儲存庫。登入 Docker Hub,移至儲存庫,然後選擇 Tags (標籤) 索引標籤。latest 標籤應該包含最近的 Last Updated (上次更新) 值。