aws ECRにリポジトリを作る
- awsコンソールにログイン
- 検索窓から「ecr」と検索すると「Amazon Container Services」というのが出てくるのでクリック
- リポジトリを作成
- 今回は「test」という名前でリポジトリを作成します(名前は任意の名前で大丈夫です!)
Github Actionsを動かすアクセスキー、シークレットキーを取得
- awsコンソールにログイン
- 検索窓から「iam」と検索
- ユーザー追加をクリック
4.名前に「github-actions」(名前は任意の名前で大丈夫です!)アクセスの種類は「プログラムによるアクセス」にチェックして次へ
5.「既存のポリシーを直接アタッチ」を選択→「AmazonEC2ContainerRegistryPowerUser」と検索すると権限が出てくるのでこちらをチェック
- あとは全て次へで大丈夫です。そしたら以下のような画面になるのでアクセスキーとシークレットキーをメモしておく
Githubにシークレットキーを登録
- githubの該当のリポジトリにいき下記3つの変数を追加する
- AWS_ACCESS_KEY_ID(先ほど取得したアクセスキー)
- AWS_SECRET_ACCESS_KEY(先ほど取得したシークレットキー)
- AWS_ECR_REPO_NAME(ECRで作成したリポジトリ名*今回の場合は
test
)
上記のように変数を指定することで${{ 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がプッシュされてれば完了です