[英]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.