调整“将 Docker 映像发布到 Amazon ECR”示例,将其推送到 Docker Hub - AWS CodeBuild

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

调整“将 Docker 映像发布到 Amazon ECR”示例,将其推送到 Docker Hub

要调整“将 Docker 映像发布到 Amazon ECR”,以便将 Docker 映像推送到 Docker Hub 而不是推送到 Amazon ECR,请编辑示例的代码。有关示例的更多信息,请参阅 CodeBuild 的“将 Docker 映像发布到 Amazon ECR 映像存储库”示例运行“将 Docker 映像发布到 Amazon ECR”示例

注意

如果您使用的是 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. create-project 命令的 JSON 格式输入中的这些代码行替换为:

    ... "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,再转至存储库,然后选择标签选项卡。latest 标签应包含最新的上次更新值。