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は公開されません

※ 承認されると名前・コメントが下記に表示されます

コメント一覧

最近の投稿

ビジュアルリグレッションテストについてまとめ、ネットで調べると数多くのライブラリがありどれがどんな立ち位置なのか全体像がわかりずらかったのでどんな種類があるのか入門の入門としてまとめます、またPlaywrightを使って実際に触ってみました

社内ツールなどの超小規模なAPIをGolangで実装する際にフレームワークを使うべきかを、実際にnet/httpを使った実装とフレームワークを使った実装を比較することでどれだけ優位性があるかを見ていきたいと思います。今回はフレームワークにはシンプルで使いやすそうなEchoを使うことにします。

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でどういうコンポーネント設計にするかについてまとめます

カテゴリ一覧

タグ一覧