GitHub Actionsを使ってDockerイメージのビルドとACR(Azure Container Registry)へのプッシュをさせてデプロイ環境を簡単に自動化する
参考にした記事
workflows配下に作るymlファイル
.github/workflows/docker-deploy.yml
# パイプライン名。GitHub Actionsのタブで一覧表示される時にこの名前が出る
name: CI to Azure Container Registry
# ワークフローが実行されるトリガー条件。
# mainブランチへのpushしたときに発動させてる
on:
push:
branches: [main]
# ジョブの定義。ビルドとプッシュを一つのジョブで実行させる
jobs:
build:
# 実行環境はUbuntuを指定
runs-on: ubuntu-latest
steps:
# GitHubリポジトリのコードをチェックアウトする
# これがないと、リポジトリのコードにアクセスできないエラーでたから要る。
- uses: actions/checkout@v3
name: Checkout source code
# Dockerにログインする。ビルドとプッシュ作業の前に必要
- name: Log in to Azure Container Registry
uses: docker/login-action@v2
with:
# ACRのドメインを指定。
#※AzureでACRを事前に作っておく。↓画像参照
registry: <レジストリ名>.azurecr.io
# GitHub Secretsからユーザー名とパスワードを取得。
username: ${{ secrets.ACR_USERNAME }}
password: ${{ secrets.ACR_PASSWORD }}
# ここでDockerイメージのビルドとACRへのプッシュする。
- name: Build and push Docker image
run: |
#DockerビルドとタグにはGitHubのcommit SHAを使用。
docker build . -t <レジストリ名>.azurecr.io/<アプリ名>:${{ github.sha }}
# ビルドしたイメージをACRにプッシュ。
docker push <レジストリ名>.azurecr.io/<アプリ名>:${{ github.sha }}
ワークフローを設定することで、githubにpushするたびに自動的にDockerイメージがビルドされるのでかなり楽になった。