Githubリポジトリにコミットしたら、自動的に”Docker Hub”でDockerイメージを作成させる
はじめに
僕は Docker Hub 上で Docker イメージをいくつも公開しています。
- genzouw/mkr : mkr - Command Line Tool For Mackerel written in Go.
- genzouw/gpg : Docker image that give gpg command.
- genzouw/td : This is a Docker image wrapping the command line client tool td of" Treasure Data ". Ruby installation, Gem installation, authentication information, etc. can all be managed by Docker container.
- genzouw/jq : This is Dockerfile repository that wrap jq command.
- genzouw/trim-text : This Docker image is intended to provide a UI that integrates command line text cut operations.
- genzouw/ansize : Convert image to text ( ascii art ) .
いずれも自分の公開 Github リポジトリコミットしたタイミングで、 "Docker Hub"でイメージを自動的に作成するようにしています。
この設定方法を紹介します。
検証環境
前提
1. Docker Hub のアカウントをもっていること
既に "Docker Hub" でアカウントを作成していることを前提としています。
もしまだアカウント作成されていない場合には、以下のサイトトップページの裏アカウントを作成できます。
作成しておきましょう。
2. Github のアカウントを持っていること
今回は Github のリポジトリを連携するため、Github のアカウントを持っていることを前提としています。
Docker イメージ自動作業の設定方法
1. "Docker Hub" にログインする
"Docker Hub" にログインします。
ログイン後のトップページ右上に 「Create Repository」 と言うボタンがあるので、これをクリックします。
2. Docker イメージ名を入力する
今回作成したい Docker イメージ名を入力します。
この後に指定する連携対象の 公開 Github リポジトリ名 と同じ値を入力するのが分かりやすいと思います。
ここでは、 後ほど指定します genzouw/hey という Github リポジトリをもとに Docker イメージを作成する想定なので、同じ名前を入力しておきました。
入力したら、一番下にある Github アイコンをクリックして連携設定に進みましょう 。
3. 連携対象の "公開 Github リポジトリ名" を選択する
Github アイコンをクリックして Github との連携が完了すれば、先程のページで Github リポジトリが選択できるようになっているはずです。
genzouw/hey という Github リポジトリ を連携させるべく、選択しました。
4. 最期に "Docker Hub" でイメージビルドをさせるためのトリガーを設定する
連携した Github リポジトリにどんな操作が行われた時にイメージに入ると実行させるかを設定します。
ここでは以下の 2 つの条件設定しています。
いずれかの条件が満たされた場合に Docker イメージのビルド処理が実行されます。
- master ブランチに対して Push されたタイミング → Docker のタグは latest というタグで作成
- vX.Y.Z のようなバージョンタグが Push されたタイミング → Docker のタグは vX.Y.Z というタグで作成
設定が終了したら、 「Create & Build」 ボタンをクリックして終了です。
5. 正しく設定されたかを確認
正しく設定が行われていれば以下のようなページが表示されるはずです。
設定された情報が正しく反映されていることがわかります。
作成されたイメージを使ってみる
ことの発端はベンチマークのために hey
コマンドを使いたかったと言うことにあります。
brew
でインストールすればよかったのですが、Mac 以外の環境で利用することも想定されたために Docker イメージを作成しました。
正しくビルドされていれば Mac 環境でもどこでも利用できるはずです。
ヘルプを引いてみます。
うまく動作しました。
ひとこと
ということで、Go で作成されたコマンドラインのベンチマークツール hey
を Docker イメージとして公開しました 。
よかったらお使いくださいませ。
ディスカッション
コメント一覧
まだ、コメントがありません