こんにちはサイオステクノロジー角川です。
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]をクリックします。


Read & Write を選択して[Generate]をクリックします。

次の画面でアクセストークンが発行され表示されますので手元に控えておきます。
GitHubの設定

Dockerfileを管理しているGitHubのリポジトリの[Settings]メニューから[Secrets]-[Actions]を開きDocker Hubのトークン情報を登録します。


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イメージのビルドとイメージの登録がおこなわれる環境設定のご紹介でした。
今回は簡易な設定のみの内容でしたが、設定次第で様々な処理を実行させることが出来ます。
参考になれば幸いです。

