GitHub Actionsを利用したDockerイメージの自動ビルドを試す

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【4/18開催】VSCode Dev Containersで楽々開発環境構築祭り〜Python/Reactなどなど〜
Visual Studio Codeの拡張機能であるDev Containersを使ってReactとかPythonとかSpring Bootとかの開発環境をラクチンで構築する方法を紹介するイベントです。
https://tech-lab.connpass.com/event/311864/

こんにちはサイオステクノロジー角川です。

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:latestexample部分はご自身の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イメージのビルドとイメージの登録がおこなわれる環境設定のご紹介でした。

今回は簡易な設定のみの内容でしたが、設定次第で様々な処理を実行させることが出来ます。

参考になれば幸いです。

アバター画像
About サイオステクノロジーの中の人 9 Articles
サイオステクノロジーで働く中の人です。
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる