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 Beanstalk 上部署 docker 只提供 html 文件,没有其他文件