GitHub → DockerHubを試してみた。

GitHubにDockerfileをコミットするとDockerHubで自動的にbuildしてくれるらしいので試してみました。

GitHubにリポジトリ作成

まずはGitHub上にリポジトリを作成します。

th_sawarame:dockerfile-test 2014-07-04 21-15-23 2014-07-04 21-15-26

dockerfile-testというリポジトリを作成してDockerfileを作成しました。至ってシンプル。DockerFileの内容はこんな感じ。

FROM centos

MAINTAINER YASUSHI SAWARAME yasushi@sawara.me

RUN yum -y groupinstall "Development tools"

DockerHubでGitHubのリポジトリとの紐付け

先ほど作成したリポジトリでDockerHubのリポジトリを作成します。DockerHubの「Add Repository」 → 「Autmated Build」をクリックします。

th_Docker Hub - Content, Collaboration, Workflows, and More 2014-07-04 21-27-07 2014-07-04 21-28-02

次にGitHubの方のSelectボタンをクリックします。

th_Select Location | Docker Hub Registry - Repositories of Docker Images 2014-07-04 21-28-37 2014-07-04 21-29-29

初回のつなぎ込みの場合はGitHubの”外部アプリケーションを許可しますか?”的な画面が出て来たような気がしますので、出てきた場合は許可しましょう。

次にGitHubのリポジトリの一覧が表示されますので、先ほど作成したリポジトリを選択します。

th_GitHub: Select Repo | Docker Hub Registry - Repositories of Docker Images 2014-07-04 21-29-59 2014-07-04 21-30-33

DockerHub上のリポジトリ名を変更する場合はここで入力。今回は変更せずそのまま「Create Repository」をクリックします。

th_Add Repo | Docker Hub Registry - Repositories of Docker Images 2014-07-04 21-31-06 2014-07-04 21-31-43

早速ビルドが開始されます。「build details」をクリックしてビルド状況を確認しましょう。

th_Automated Build setup complete | Docker Hub Registry - Repositories of Docker Images 2014-07-04 21-32-21 2014-07-04 21-32-33

ビルド中は下記のようにBuildingと表示されています。

th_sawarame:dockerfile-test Repository - Builds History | Docker Hub Registry - Repositories of Docker Images 2014-07-04 21-33-20 2014-07-04 21-33-30

ビルドが完了するとFinishedと表示されます。

th_sawarame:dockerfile-test Repository - Builds History | Docker Hub Registry - Repositories of Docker Images 2014-07-04 21-50-17 2014-07-04 21-50-26

イメージファイルのダウンロード〜コンテナの作成・起動

最後にLinux(CentOS6.5)上からイメージファイルをダウンロードし、コンテナを作成します。ちなみにDockerは既にインストール済み。インストール方法は前回のエントリの通り。

docker pull sawarame/dockerfile-test:latest
docker run -it --name test01 sawarame/dockerfile-test /bin/bash
bash-4.1#

bashのコマンドラインが帰ってきたら成功。GitHubからDockerHubへの自動ビルドが成功しました。

感想

Dockerで基本的なコンテナの作成が出来るようになったので、今後色々試してみたい。
まずは以前からやろうと思っていたmysqlfailoverを検証して見ようと思う。

コメントを残す