Github 操作将 docker 部署到 AWS ECS ECR

Posted

技术标签:

【中文标题】Github 操作将 docker 部署到 AWS ECS ECR【英文标题】:Github action deploy docker to AWS ECS ECR 【发布时间】:2020-07-29 06:16:21 【问题描述】:

您好,我想使用 Github 操作来构建我的 github 存储库的前端和后端图像并将其推送到 AWS ECR。

如何更改这部分 Github 操作的配置??

- name: Build, tag, and push image to Amazon ECR
  id: build-image
  env:
    ECR_REGISTRY: $ steps.login-ecr.outputs.registry 
    ECR_REPOSITORY: githubactions
    IMAGE_TAG: latest
  run: |
    # Build a docker container and
    # push it to ECR so that it can
    # be deployed to ECS.
    docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
    docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
    echo "::set-output name=image::$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG"

假设在我的 Github 存储库中,我有两个带有 web/Dockerfile 和 backend/Dockerfile 的图像

【问题讨论】:

【参考方案1】:

您只需使用 docker build -f PATH 并运行 build+push 命令两次,或者在同一步骤中作为附加命令:

- name: Build, tag, and push images to Amazon ECR
  id: build-image
  env:
    ECR_REGISTRY: $ steps.login-ecr.outputs.registry 
  run: |
    docker build -f backend/Dockerfile -t $ECR_REGISTRY/backend:latest .
    docker push $ECR_REGISTRY/backend:latest
    docker build -f web/Dockerfile -t $ECR_REGISTRY/web:latest .
    docker push $ECR_REGISTRY/web:latest

或两个单独的步骤:

- name: Build, tag, and push backend image to Amazon ECR
  id: build-backend
  env:
    ECR_REGISTRY: $ steps.login-ecr.outputs.registry 
    ECR_REPOSITORY: backend
    IMAGE_TAG: latest
  run: |
    docker build -f backend/Dockerfile -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
    docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
    echo "::set-output name=image::$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG"

- name: Build, tag, and push web image to Amazon ECR
  id: build-web
  env:
    ECR_REGISTRY: $ steps.login-ecr.outputs.registry 
    ECR_REPOSITORY: web
    IMAGE_TAG: latest
  run: |
    docker build -f web/Dockerfile -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
    docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
    echo "::set-output name=image::$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG"

【讨论】:

以上是关于Github 操作将 docker 部署到 AWS ECS ECR的主要内容,如果未能解决你的问题,请参考以下文章

通过 Github 操作在 AWS ECS 上使用 Docker Compose 进行部署

带有 docker 的 AWS Elastic Beanstalk 版本不正确

如何将多个服务部署到 AWS ECS?

在 AWS Beanstalk 上部署 docker 只提供 html 文件,没有其他文件

无法使用 github 操作部署 aws beanstalk,获得 s3 访问被拒绝错误

将 Docker 映像部署到 AWS 弹性 beantalk