Docker Hubへimageではなく、Dockerfileを公開する。
必要な環境
GitHub / BitBucket
※以下ではGitHubを利用しています。
手順
- GitHubへdockerfileをpush
- DockerHubでGitHubとリンク
- Build triggerキック
※1、2の順序は逆でも可
※リンク後のDockerfileのcommitは、自動的にフックされて、DockerHubでビルドが走る(手順3は不要)
# 1. GitHubへdockerfileをpush
local環境でdockerfileをbuildし、問題ないことを確認
docker build -t tomcat7 .
GitHubへpush
# 2. DockerHubでGitHubとリンク
DockerHub → ヘッダメニュー → Create → Create AutoMated Build
GitHubレポジトリとリンクしていない場合は、リンクする。
# 3. Build triggerキック
defalutでは、GitHub push triggerとなっているため、明示的にBuild Triggerをキックし、現状のdockerfileをビルドし、imageを公開する。
以下を参考にし、curlなどでHTTP POSTし、Build Triggerをキックする。
DockerHub → 2.でリンクしたレポジトリに移動 → Build Settings → Build Triggerエリア → show examples.
curl -H "Content-Type: application/json" --data '{"build": true}' -X POST https://registry.hub.docker.com/u/mirrored1976/docker-tomcat7/trigger/5f2bdd77-68c4-4613-934a-0dfaa0fcb53f/
build requestリンクを見るとbuild結果が確認できます。
サンプル画面
Docker Hubのサンプル
## 終わりに
GitHubへのpush済の場合、Build Triggerを明示的にキックしないと、build結果が確認できません。
私は、一瞬待ってしまいました。。。
Dockerfileがないと、ベースイメージ等々確認できず不便な為、今後はautomated buildを利用していきたいです。