调整 “将 Docker 镜像发布到亚马逊ECR” 示例以推送到 Docker Hub - AWS CodeBuild

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

调整 “将 Docker 镜像发布到亚马逊ECR” 示例以推送到 Docker Hub

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

注意

如果您使用的是 17.06 版本之前的 Docker 版本,请删除 --no-include-email 选项。

  1. 替换buildspec.yml文件中以下ECR特定于 Amazon 的代码行:

    ... 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格式输入中的以下代码行替换为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,再转至存储库,然后选择标签选项卡。latest 标签应包含最新的上次更新值。