本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
調整「將 Docker 映像發佈到 AmazonECR」樣本以推送到 Docker 集線器
要調整「將 Docker 映像發佈到 AmazonECR」示例,以便將 Docker 映像推送到 Docker Hub 而不是 AmazonECR,請編輯示例的代碼。如需有關範例的詳細資訊,請參閱「將 Docker 映像發佈到 Amazon 圖像存儲庫」ECR 示例 CodeBuild和運行「將 Docker 映像發佈到 AmazonECR」示例。
注意
如果您使用的是 17.06 之前的 Docker 版本,請移除 --no-include-email
選項。
-
替換
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 ...
-
將編輯過的程式碼上傳至 S3 輸入儲存貯體或 AWS CodeCommit GitHub、或 Bitbucket 儲存庫。
重要
請勿上傳
,僅上傳(root directory name)
內的檔案即可。(root directory name)
如果您使用 S3 輸入儲存貯體,請務必建立包含ZIP檔案的檔案,然後將其上傳到輸入儲存貯體。不要添加
到文ZIP件中,只添加其中的文件(root directory name)
。(root directory name)
-
將這些代碼從 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" } ] ... -
建立組建環境、執行組建,以及檢視相關的組建資訊。
-
確認 AWS CodeBuild 已成功將 Docker 映像檔推送至儲存庫。登入 Docker Hub,移至儲存庫,然後選擇 Tags (標籤) 索引標籤。
latest
標籤應該包含最近的 Last Updated (上次更新) 值。