DockerHubでAutomated Buildを試す
DockerHubでAutomated Buildを試したメモです。
Dockerイメージは、DockerHubというリポジトリで自動でビルド、公開することが出来ます。
DockerHubはGitHubと連携することが出来ます。
そのため、GitHubでDockerfileをバージョン管理し、GitHubへDockerfileをコミットすると
DockerHubで自動でビルドしてDockerイメージを公開する、というような運用が出来ます。
GitHubでのDockerfile管理
GitHubへDockerfileをコミットします。
今回は「Dockerfiles」というリポジトリを作成し、「httpd_sample」というディレクトリを掘りました。
その下に、Dockerfileを配置します。
ファイルの中身はこんなものです。
Dockerfile
# setting base image FROM centos:centos6 # Author MAINTAINER pppurple # install Apache http server RUN ["yum", "-y", "install", "httpd"] # start httpd CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
DockerHub
DockerHubアカウント作成
DockerHubのサイトにアクセスします。
アカウント名、メアド、パスワードを入力します。
確認用メールが届くのでクリックすると、登録完了です。
GitHub連携
DockerHubのトップページから、「Create」⇒「Create Automated Build」を選択します。
「Link Accounts」をクリック。
今回はGitHubと連携するので「Link GitHub」をクリック。
「Public and Private」をクリック。
GitHubの認証画面が表示されるので、「Authorize appication」をクリックして承認します。
DockerHubの画面に戻るので、「Unlink GitHub」をクリック。
「Create Auto-build」をクリック。
GitHubのリポジトリ一覧が表示されます。
連携対象のリポジトリを選択します。今回は「Dockerfile」リポジトリを選択します。
「Create」をクリック。
Automated buildの画面が表示されます。
「Build Settings」タブをクリックする。
「Dockerfile Location」にGitHubリポジトリ内でのDockerfileのパスを指定します。
リポジトリ直下にDockerfileを配置している場合は、空でよいです。
「Trigger」ボタンをクリックすると、手動ビルドされます。
ボタンが「Triggered」に変わります。
「Build Details」タブをクリックします。
一番上に先ほどの手動ビルドの状態が表示されます。
ビルド中になっており、ビルド完了には数分かかります。
数分経つと「Success」になり、ビルドが完了します。
エラーの場合は「Error」と表示され、クリックするとエラーの詳細が表示されます。
「Dockerfile」タブをクリックすると、連携したDockerfileが表示されます。
公開したDockerイメージを使う
DockerHubで公開したDockerイメージを使ってみます。
dockerからpullしてダウンロードします。
DockerHubに登録したアカウント名とリポジトリ名を指定します。
$ docker pull pppurple/dockerfiles Using default tag: latest latest: Pulling from pppurple/dockerfiles 9614861c9275: Pull complete f2f3434f5712: Pull complete Digest: sha256:5181f74f66803888a5da9f6143eb6f75010ef476e7d1afd3898eeb3e352bede2 Status: Downloaded newer image for pppurple/dockerfiles:latest
docker imagesでdockerイメージを確認してみます。
ダウンロードされていることが分かります。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
pppurple/dockerfiles latest a2d783635b1d 3 hours ago 288.6 MB
Automated Buildを試す
GitHubで管理しているDockerfileを修正し、DockerHubのdockerイメージが
自動でビルドされることを確認してみます。
Authorを変更して、GitHubにコミットします。
# setting base image FROM centos:centos6 # Author MAINTAINER dummy # install Apache http server RUN ["yum", "-y", "install", "httpd"] # start httpd CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
DockerHubの「Build Details」を確認してみると
GitHubへのコミットをトリガーにして自動でビルドが始まります。
数分するとビルドが完了します。
「Dockerfile」タブを確認してみると、Authorが変更されているのが分かります。
終わり。
【参考】