こんにちはサイオステクノロジー角川です。
GitHub Actionsというあらかじめ定義しておいた処理を実行できるGitHubが提供する機能です。
例えばGitリポジトリ内の変更をトリガーになんらかの処理をおこなわせるといったことが可能です。
今回はGitHub Actionsの動作例として、git push
がおこなわれたことをトリガーとしてGitHubリポジトリで管理しているDockerfileから自動でDockerイメージのビルドをおこない、その後Docker Hubへ自動でイメージの登録をおこなう設定についてご紹介します。
準備
Docker Hubの設定
docker build
後、自動でDocker HubへpushさせるためDocker Hubからアクセストークンキーを発行します。
Docker Hubのメニューから[Account Settings]をクリックします。
[Security]メニューから [Access Tokens]の[New Access Token]ボタンをクリックします。 [Access Token Description]に任意の名前、[Access permissions]をRead & Write
を選択して[Generate]をクリックします。
次の画面でアクセストークンが発行され表示されますので手元に控えておきます。
GitHubの設定
Dockerfileを管理しているGitHubのリポジトリの[Settings]メニューから[Secrets]-[Actions]を開きDocker Hubのトークン情報を登録します。
[New repository secret]をクリックします。 [Name]にDOCKERHUB_TOKEN
として、[Value]にDocker Hubで取得し控えておいたトークンを入力します。
もうひとつ設定を追加して[Name]に DOCKERHUB_USERNAME
として、[Value]にDocker Hubのユーザ名を入力します。
GitHub Actionsの設定
こちらの公式ドキュメントを参考にDockerfileを管理しているリポジトリに以下のディレクトリとGitHub Actions設定用のYAMLファイルを用意します。
.github/workflows/docker-build.yaml
name: ci on: push: branches: - 'main' jobs: docker: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - name: Login to DockerHub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push uses: docker/build-push-action@v2 with: context: . push: true tags: example/github-actions-test:latest
上記最終行の tags: example/github-actions-test:latest
のexample
部分はご自身のDocker HubのIDに変更してください。
リポジトリのファイルとディレクトリは以下のようにします。
.git .github/ Dockerfile
.github/workflows/docker-build.yaml
の設定からmainブランチにpushされるとGitHub Actionsが動作する設定になっています。
git push後、[Actions]メニューを開くことで動作の状況を確認をおこなうことが出来ます。
GitHub Actionsが正常に動作したことが確認出来ます。
Docker Hubを確認すると自動でDockerイメージがpushされ、登録されていることが確認出来ます。
最後に
いかがだったでしょうか。GitHub Actionsを利用することで自動でDockerイメージのビルドとイメージの登録がおこなわれる環境設定のご紹介でした。
今回は簡易な設定のみの内容でしたが、設定次第で様々な処理を実行させることが出来ます。
参考になれば幸いです。