[英]Deploy with Docker Compose on AWS ECS with Github actions
我最近开始尝试使用 ECS、Docker Compose 和上下文,这真的很有趣。 我已经设法通过我的终端使用docker compose up
和 ecs-context 部署和托管一个组合文件,但我也想通过类似 Github 操作来自动化这个。
我正在努力看看如何设置它,我还没有找到它的指南。
有什么好的资源可以进一步研究吗? 通过 Github 在 AWS 上执行 CI/CD 的替代或什至更好的方法是什么?
StackOverflow 问题有点开放,但这篇博文将向您展示如何使用 AWS 原生 CI/CD 工具通过 docker 组合集成部署到 ECS 的示例。
我不再使用 Docker Compose,而是手动编写了 CloudFormation 模板。 Docker Compose 仍然有一些限制,需要一些古怪的解决方法。
但是对于任何想知道在离开它之前我是如何解决这个问题的人(包括 GHA 缓存):
name: Deploy with Docker Compose
on:
push:
branches:
- main
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout source code
uses: actions/checkout@v2
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v1
- name: Setup Buildx
id: buildx
uses: docker/setup-buildx-action@v1
- name: Build and push <YOUR_IMAGE>
uses: docker/build-push-action@v2
with:
context: .
push: true
cache-from: type=gha,scope=<YOUR_IMAGE>
cache-to: type=gha,scope=<YOUR_IMAGE>
tags: |
${{ steps.login-ecr.outputs.registry }}/${{ secrets.ECR_REPOSITORY }}:<YOUR_IMAGE>-${{ github.sha }}
${{ steps.login-ecr.outputs.registry }}/${{ secrets.ECR_REPOSITORY }}:<YOUR_IMAGE>-latest
- name: Install Docker Compose
run: curl -L https://raw.githubusercontent.com/docker/compose-cli/main/scripts/install/install_linux.sh | sh
- name: Docker context
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: ${{ secrets.AWS_REGION }}
ECR_REPOSITORY: ${{ secrets.ECR_REPOSITORY }}
GITHUB_SHA: ${{ github.sha }}
run: |
docker context create ecs ecs-context --from-env
docker --context ecs-context compose up
我也在搜索这个,但我没有找到任何东西可以确认使用任何 AWS GitHub 操作是可能的。 但是,您可以将多个容器指定为同一个 ECS 任务定义的一部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.