DockerhubのAutomated buildを試す


Automated Buildとは

新しく立ち上がったDocker Hubは、ただのイメージの集積所ではなくBuildもできるようになった。
github、BitBacketと連携して、そこにあるリポジトリの状態から勝手にBuildしてくれる。

今回はtypesafe-activatorを取り込んだイメージを作るDockerfileを書いて、githubにpush、Docker Hubでbuildしてみた

https://github.com/JAGAxIMO/docker-typesafe-activator
https://hub.docker.com/

Dockerfileをgithubにpush

こんなDockerfileを書いた。眠い目こすってやってたのでひどい事になってる
今回は @ringo さんのringo/scientificをベースに使ってみた

FROM ringo/scientific:6.5
RUN yum install -y wget unzip
RUN mkdir -p /home/src/ && cd /home/src && wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u5-b13/jdk-8u5-linux-x64.rpm && rpm -ivh jdk-8u5-linux-x64.rpm 
RUN cd /home/src && wget http://downloads.typesafe.com/typesafe-activator/1.2.2/typesafe-activator-1.2.2.zip && unzip typesafe-activator-1.2.2.zip
RUN ln -s /home/src/activator-1.2.2 /usr/local/lib/activator && ln -s /usr/local/lib/activator/activator /usr/local/bin/activator

これとREADMEとLICENSEをでっちあげて git push

Automated Build


Docker Hubのトップページの右上にADD Repositoryというボタンを押すと、こんな感じでAutomated Buildが選択できる


こんなページにいくので、そのままgithubを選択し、buildしたいDockerfileがあるリポジトリを選択

ここで設定して、そのまま進めれば、あとは勝手にbuild待ちのキューに積まれる
キューに積まれた時、
これはbuild待ち5番目の図。最初buildした時は240人待ちで全然buildされなかった

build途中のステータス。Pushingになってるから、buildはパスしてリポジトリにあげている最中っぽい

buildが終わった。Logが出てる

これで、リポジトリが出来上がる。便利

試せていないけれど出来そうなこと

DockerhubにWebHookとBuild Triggerがあるので

  1. masterにpull requestをマージする
  2. CIツールでgithubのマージイベントのHookをキャッチし、Build Triggerをcurlで叩いてBuild開始
  3. Docker HubのWebHookをCIツールでキャッチして、リポジトリをPull & Run

とかできそう