表題の通り。先日のエントリで作成したDockerfileをGitHubでversion管理し、変更(commit)がGitHubのレポジトリにpushされたタイミングでDockerHubの”Automated Build“によって自動的にビルドされるようにしたい。
■ 環境
- GitHub
- DockerHub
■ Dockerfile
先日のエントリの通りである。そこからは特に修正を入れていない。
■ GitHub
新規でレポジトリを作成する。
以降、下記。
$ mkdir docker-zookeeper
$ cd docker-zookeeper
$ git init
$
とりあえず”README.md“を適当に用意し、アップすることにする。
$ ls
README.md
$ git add README.md
$ git commit -m "initialize."
$ git remote add origin https://github.com/withsin/docker-zookeeper.git
$ git push -u origin master
■ DockerHub
DockerHubのアカウントは以前、下記のエントリにて作成している。
ログイン後、アカウントの横にある”Create“から”Create Automated Build“を選択する。
まだGitHubとの連携等をしていなければ下記のような画面が出るはずである。
“Link Accounts“から”Link Github“を選択する。
オススメされている”Public and Privae“を選択しておく。現状では”Private“を使うことはないであろうが。
GitHub側の認証を通せば下記のようにリンクされるはずである。
再度、”Create Automated Build“から行くと、下記のように自身の”GitHub“のレポジトリの一覧が取得できているはずだ。
この中から前述の通り”docker-zookeeper“を選択。
Dockerのコンテナ名や説明に”Docker“という文字は不要であるのでそれぞれ書き換えている。
- Name: zookeeper
- Short Description: Apache ZooKeeper
“Create“を実行。レポジトリが作成された。
■ Automated Build
では、実際にDockerfileを`push`してコンテナがビルドされるか試してみる。Dockerfileは先日のエントリの通りである。
$ ls
Dockerfile README.md
$ gis status
# On branch master
# Untracked files:
# (use "git add ..." to include in what will be committed)
#
# Dockerfile
nothing added to commit but untracked files present (use "git add" to track)
$
$ git add Dockerfile
$ git commit -m "add Dockerfile."
$ git push
Username for 'https://github.com': withsin
Password for 'https://withsin@github.com':
Counting objects: 4, done.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 565 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/withsin/docker-zookeeper.git
d5f780c..04efe2a master -> master
$
これでDockerHubを確認する。”Build Details“を見ると下記のようになっていた。
“Queued”でコンテナがビルドされる順番待ちであるようである。しばらく待って再度アクセスすればコンテナがビルドされているであろう。
以上。