Docker Hubを使ってGitHubにあるDockerfileからimageを自動生成する

Published: 2016年3月27日 by tomsato

概要

Docker入門の入門
Dockerコマンドを学ぶ
これまでDockerの概要と使い方について学んできましたが、今回はDockerHubとGitHubを連携してGitHubにあるDockerfileから自動でDockerHubリポジトリにimageを追加するやり方を学びます

続き → 個人開発環境作成のためのDockerfileメモ

イメージ

docker05

  1. ユーザーがDockerfileをGitHubにPushする
  2. Dockerfileからimageを自動で作成する
    1. 前提としてDockerHubの登録が済んでいてDockerHubとGitHubの連携ができている必要がある
  3. 作成されたimageはDockerHubリポジトリに追加される
    1. 違うユーザ、違うサーバで使いまわすことができる

Dockerコマンドを使用してDockerHubにPushすることもできるがGitHubでソースを管理しつつ自動でimageが作成されるのでコスト削減もできるし、「Infrastructure as Code」を実現することができる

DockerHubを使ってみる

事前準備

  • DockerHubと連携させるリポジトリの作成
    • 今回はtomsato/dockerhub-testを作成
  • DockerHub登録
    • https://hub.docker.com/ から

DockerHubとGitHubを連携

https://hub.docker.com/ から

上段のメニューバー「Create」->「Create Automated Build」から連携する

dockerhub01

連携した後、再度「Create Automated Build」を見てリポジトリの選択ができるので先ほど作成したリポジトリを選択する

https://hub.docker.com/r/{account}/{repository}/ で設定の確認ができる

dockerhub02

Dockerfileの作成

作成したリポジトリのトップディレクトリにDockerfileを作成する

$ cat Dockerfile
# どのイメージを使うか
FROM centos:6.7

# 作成者
MAINTAINER tomsato

# ビルドする時に実行される 
RUN yum -y groupinstall "Development tools"

このDockerfileをプッシュするとDockerHubで自動でビルドが走る
上記の記述では5分後ぐらいにビルドが終わる(遅い)

dockerhub03

Successになった場合docker pullによってDockerHubからimageを取得できるようになる

$ sudo docker pull {image name}
$ sudo docker pull tomsato/dockerhub-test

Dockerfileを修正すれば自分好みの開発環境を作成することができるようになる

参考

コメントを書く

※ Emailは公開されません

※ コメントは承認されると下記に表示されます

コメント一覧

最近の投稿

vue-pdfを使ってNuxt.jsで作成しているアプリケーションに pdfスライドを表示させるサンプルを作成しました README.md通りに実装してもうまくいかないところがあったのでそのあたり含めてまとめます

Vue.js / Nuxt.jsにおけるログインの実装方法をまとめる Auth0やNuxt.jsのAuth Moduleとmiddlewareについて調べつつサンプルを作成することで理解を深める

コンポーネント設計について考える Atomic DesignやPresentational Component, Container Componentについてまとめつつ 自分だったらVue.js / Nuxt.jsでどういうコンポーネント設計にするかについてまとめます

Netlify Formsを使ってブログサイトにコメント機能を追加する方法を調べたので紹介 Netlify FormsはNetlifyに標準機能として用意されているフォーム機能 サーバレスなので別途コメント用にサーバを用意する必要がなくHTMLを埋め込むだけで準備できる

TypeScriptの入門の入門チートシート 型の種類や使い方についてまとめていくだけでなく、 TypeScriptについてや必要性などについてもまとめることでこのページでTypeScriptをざっくり理解できる程度の内容を目指す

カテゴリ一覧

タグ一覧