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を修正すれば自分好みの開発環境を作成することができるようになる

参考

Share

最近の投稿

NetlifyのSplit TestingとFunctionsについて使い方をまとめる Split TestingはGitHubのブランチをベースにしたA/Bテストを行うための機能のことで、FunctionsはNetlifyでAWS Lambdaを使うことができる

NetlifyとはHTMLなどの静的コンテンツのみで構成されたWebサイトを閲覧できる形で配信するWebサービス GitHubやBitbucket、GitLabなどと連携して使うことができて、リポジトリにプッシュすることで自動でCI/CDを行うことができる、無料枠が豊富で独自ドメインを設定可能

WordPressからJekyll(GitHub Pages)に移行した手順をまとめる。 お金的な事情や使いやすさなどの理由で無料のJekyll+GitHub Pagesに移行した。JekyllとはMarkdown等から静的ページを生成する静的サイトジェネレータ

Scala開発のためにScalaらしさをまとめる 言語設計者の設計思想を元にScalaらしさについてまとめる オブジェクト指向と関数型の融合について

StorybookとはUI開発環境を提供するツール React、React Native、Angular、Vueなどをサポートしている ユーザーは独立した開発環境でコンポーネントを個別に作成して挙動の確認をテストできたり、コンポーネントを一覧にしてカタログ化できるので他の人に紹介する時に使えたりする

カテゴリ一覧

タグ一覧