LoginSignup
1
2

More than 3 years have passed since last update.

GithubActionでmasterプッシュ時にECRにimageをpushする

Last updated at Posted at 2020-08-24

aws ECRにリポジトリを作る

  1. awsコンソールにログイン
  2. 検索窓から「ecr」と検索すると「Amazon Container Services」というのが出てくるのでクリック
  3. リポジトリを作成 スクリーンショット 2020-08-23 21.35.52.png
  4. 今回は「test」という名前でリポジトリを作成します(名前は任意の名前で大丈夫です!) スクリーンショット 2020-08-23 21.37.02.png

Github Actionsを動かすアクセスキー、シークレットキーを取得

  1. awsコンソールにログイン
  2. 検索窓から「iam」と検索
  3. ユーザー追加をクリック スクリーンショット 2020-08-23 21.27.13.png 4.名前に「github-actions」(名前は任意の名前で大丈夫です!)アクセスの種類は「プログラムによるアクセス」にチェックして次へ スクリーンショット 2020-08-23 21.27.54.png 5.「既存のポリシーを直接アタッチ」を選択→「AmazonEC2ContainerRegistryPowerUser」と検索すると権限が出てくるのでこちらをチェック スクリーンショット 2020-08-23 21.29.06.png
  4. あとは全て次へで大丈夫です。そしたら以下のような画面になるのでアクセスキーとシークレットキーをメモしておく スクリーンショット 2020-08-23 21.29.48.png

Githubにシークレットキーを登録

  1. githubの該当のリポジトリにいき下記3つの変数を追加する
  • AWS_ACCESS_KEY_ID(先ほど取得したアクセスキー)
  • AWS_SECRET_ACCESS_KEY(先ほど取得したシークレットキー)
  • AWS_ECR_REPO_NAME(ECRで作成したリポジトリ名*今回の場合はtestスクリーンショット 2020-08-23 21.40.33.png 上記のように変数を指定することで${{ secrets.キー名 }}とすることでその環境変数を使用できる

github actionsのymlを作成

.github/workflows/config.yml
name: Build and Push

on:
  push:
    branches:
      - master

jobs:
  build-and-push:
    runs-on: ubuntu-18.04
    timeout-minutes: 300

    steps:
      - uses: actions/checkout@v1

      - 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: ap-northeast-1

      - name: Login to Amazon ECR
        id: login-ecr
        uses: aws-actions/amazon-ecr-login@v1

      - name: Build, tag, and push image to Amazon ECR
        env:
          ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
          ECR_REPOSITORY: ${{ secrets.AWS_ECR_REPO_NAME }}
        run: |
          docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:latest .
          docker push $ECR_REGISTRY/$ECR_REPOSITORY:latest

確認!

  • aws ECRにリポジトリを作る
  • Github Actionsを動かすアクセスキー、シークレットキーを取得
  • Githubにシークレットキーを登録
  • github actionsのymlを作成

上記4点ができたら
githubにプッシュしてみてくださいするとgithub actionsが動きリポジトリにimageがプッシュされてれば完了です
スクリーンショット 2020-08-23 23.10.24.png

参考文献

GitHub ActionでDockerコンテナをビルドしてAmazon ECRに保存する

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2