DockerHubでautomated build〜他人の褌で相撲をとれ〜


目的

DockerHubのautomated buildをつかって、
Githubのリポジトリ上のDockerfileが更新されるたびに
イメージが自動ビルドされるようにする。

これでローカルのリソースを使うことなく他人の褌で相撲が取れる

真面目に述べるとDockerがインストールされていなかったりといった
状況でもgitクライアントとテキストエディタさえ動作すれば
Dockerコンテナイメージのビルドができます。

手順

リポジトリの準備

GitHubでリポジトリを作ります。

Dockerfileを準備

リポジトリをcloneしてDockerfileを作成する。

Dockerfile
FROM alpine:latest
CMD /bin/sh -c 'echo "Hello automated build"'

DockerHubアカウントとGitHubアカウントを連携させる

DockerHubにログインし、画面右上のドロップダウンメニューから
Settingsを選択する。

Linked Accounts & Servicesタブを選択し、
Link Githubを選択する。

Public/Privateリポジトリの両方を利用したかったりするなら(A)を選択する。

Githubのログイン画面が表示されるので、パスワードを入力するとDockerHubの先ほどの画面に自身のアカウントアイコンが表示されるようになる。

これでDockerHubアカウントとGitHubアカウントの紐付けは完了。

automated buildの設定

右上のCreateドロップダウンメニューを選択する。

Create Auto-build Githubとなっている方を選択。

連携させたいGithubリポジトリを選択。

リポジトリの名前を設定したい場合は、テキストフィールド(Repository Namespace & Name)の中身を修正する。設定が終わったらCreateボタンをクリックする。

リポジトリが作成される。

イメージのビルド設定確認

Build Settingsリンクをクリックするとコンテナイメージのビルド
設定を確認できる。

ここで、gitのリポジトリのブランチごとにイメージのタグを変えたり、
Dockerfileの配置場所を指定したりといった様々な設定を行うことができる。また、手動でビルドを行うことも可能。

動作確認

試しに、Dockerfileを修正してcommit & pushすると自動でビルドが開始される。

無事完了するとStatusSuccessとなり、イメージをdocker pullできるようになる。