docker
DockerHub

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

目的

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

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

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

手順

リポジトリの準備

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

Dockerfileを準備

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

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

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

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

image.png

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

image.png

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

image.png

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

image.png

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

automated buildの設定

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

image.png

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

image.png

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

image.png

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

image.png

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

image.png

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

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

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

image.png

動作確認

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

image.png

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