🍉
ECRにgithub actionsからimageをbuild&pushする
※ 備忘録です。
概要
github actionsのワークフローを設定します。その中でファイル生成やdocker imageのbuild、ECRへのpushを行います。
手順
- こちらを参考に行なっています。基本的にこちらの手順通りに進めるとうまく行くと思います。
- (とても参考になりました!ありがとうございます!)
- https://zenn.dev/kou_pg_0131/articles/gh-actions-ecr-push-image
- 最後の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
参考
Discussion