🍉

ECRにgithub actionsからimageをbuild&pushする

2024/07/20に公開

※ 備忘録です。

概要

github actionsのワークフローを設定します。その中でファイル生成やdocker imageのbuild、ECRへのpushを行います。

手順

  • こちらを参考に行なっています。基本的にこちらの手順通りに進めるとうまく行くと思います。
  • 最後のgithub actionsワークフローの中身だけ異なるので、何かの参考になればと思い記載します。

ワークフローの中身

.github/wolkflows/buildAndPush.yml
name: ECR push image

# 実行タイミングは適宜変更してください。
on:
  push:
    branches:
      - main

jobs:
  ecr_push_and_build:
    runs-on: ubuntu-latest
    permissions:
      id-token: write
      contents: read
    steps:
      - uses: actions/checkout@v3
      # .envファイルの作成と書き込みを行なっています。
        # .envファイルをgithubの管理に含めていなかったので、不要な場合はこのステップは削除してください。
        # secretsの設定はgithubのsettingから行なっています。
      - name: Create .env file
        run: |
          echo "HOGE_FUGA=${{ secrets.HOGE_FUGA }}" > ./backend/.env

      # AWS認証
            # <>の中は適宜設定してください。
      - uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-region: '<region>'
          role-to-assume: '<GitHub Actions用のIAMロールのARN>'

      # ECR ログイン
      - uses: aws-actions/amazon-ecr-login@v1
        id: login-ecr

      - name: build and push docker image to ecr
        env:
          REGISTRY: ${{ steps.login-ecr.outputs.registry }}
          REPOSITORY: '<ECR repository name>'  # <>の中は適宜設定してください。
        run: |
            # ymlファイルを指定してbuildを行なっています。必要に応じてbuildの設定を行なってください。
          docker-compose -f ./backend/docker-compose.prd.yml build
          # <>の部分は適宜設定してください。
          docker tag <container name> ${{ env.REGISTRY }}/${{ env.REPOSITORY }}:latest
          docker push ${{ env.REGISTRY }}/${{ env.REPOSITORY }}:latest

参考

https://zenn.dev/kou_pg_0131/articles/gh-actions-oidc-aws
https://zenn.dev/kou_pg_0131/articles/gh-actions-ecr-push-image

Discussion