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があるので
- masterにpull requestをマージする
- CIツールでgithubのマージイベントのHookをキャッチし、Build Triggerをcurlで叩いてBuild開始
- Docker HubのWebHookをCIツールでキャッチして、リポジトリをPull & Run
とかできそう