LoginSignup
18
19

More than 5 years have passed since last update.

実践Docker

Last updated at Posted at 2014-09-08

===

目的

Dockerでアプリ環境を構築するまでの手順を整理する

前提

ソフトウェア バージョン 備考
OS X 10.8.5
boot2docker   1.0.0
rbdock    0.2.0

Docker入門

構成

詳細

セットアップ

VMとデータを共有できるようにする。

ここからISOイメージをダウンロードする。

$ boot2docker stop
$ mv ~/.boot2docker/boot2docker.iso ~/.boot2docker/boot2docker.iso.backup
$ mv ~/Downloads/boot2docker-v1.0.1-virtualbox-guest-additions-v4.3.12.iso ~/.boot2docker/boot2docker.iso
$ VBoxManage sharedfolder add boot2docker-vm -name home -hostpath /Users
$ boot2docker up

rbdockのインストール

$ gem install rbdock

アプリをつくる

$ hazel sample_sinatra
      create  sample_sinatra/config/initializers
      create  sample_sinatra/lib
      create  sample_sinatra/spec
      create  sample_sinatra/lib/.gitkeep
      create  sample_sinatra/public/stylesheets
      create  sample_sinatra/public/stylesheets/main.css
      create  sample_sinatra/public/javascripts
      create  sample_sinatra/public/javascripts/.gitkeep
      create  sample_sinatra/public/images
      create  sample_sinatra/public/images/.gitkeep
      create  sample_sinatra/public/images/hazel_icon.png
      create  sample_sinatra/public/images/hazel_small.png
      create  sample_sinatra/public/favicon.ico
      create  sample_sinatra/views
      create  sample_sinatra/views/layout.erb
      create  sample_sinatra/views/welcome.erb
      create  sample_sinatra/sample_sinatra.rb
      create  sample_sinatra/spec/sample_sinatra_spec.rb
      create  sample_sinatra/spec/spec_helper.rb
      create  sample_sinatra/config.ru
      create  sample_sinatra/Gemfile
      create  sample_sinatra/Rakefile
      create  sample_sinatra/README.md
$ cd sampel_sinatra
$ rackup config.ru

Dockerfileをつくる

$ cd sample_sinatra
$ rbdock 2.1.0 --rvm --app .

生成されたDockerfileがそのままでは動かないので修正する。
43行目を削除して44行目に以下を追加

RUN bash -l -c 'rvm use 2.1.0; bundle install'

イメージを作る

$ docker build -t="k2works/sample_sinatra" .

イメージを実行する

$ docker run -d -p 9292:9292 --name=test k2works/sample_sinatra 'rvm use ruby-2.1.0;rackup config.ru'

テスト

$ docker ps
CONTAINER ID        IMAGE                           COMMAND                CREATED             STATUS              PORTS                    NAMES
20f024e69a75        k2works/sample_sinatra:latest   bash -l -c 'rvm use    20 minutes ago      Up 4 seconds        0.0.0.0:9292->9292/tcp   test
$ curl -i $(boot2docker ip 2>/dev/null):9292
HTTP/1.1 200 OK
Content-Type: text/html;charset=utf-8
Content-Length: 1813
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Connection: keep-alive
Server: thin 1.6.2 codename Doc Brown

<!DOCTYPE html>
・・・

かたづけ

$ docker stop test
test
$ docker rm test
test

Docker Hubにプッシュ

docker push

$ docker login
$ docker push k2works/sample_sinatra

Docker Hubと連携

Automated Buildを選択

GitHubを選択



Dockerfileが存在するレポジトリを選択

Dockerfile Locationにはレポジトリ内のDocerfileの場所を指定(ここではsample_sinatra)
公開タイプを選択したらCreate Repositoryする。



上記ではDockerfileのロケーションを間違えていたためビルドに失敗している。  

Docerfile Locationを/sample_sinatraに修正後Start a Buildを実行してビルドを正常終了させる。

おまけ

他のレポジトリからDcokerfileをつくる。

sinatraにbootstrap実装のレポジトリを使う。

$ mkdir sample_gitrepo
$ cd sample_gitrepo/
$ rbdock 2.0.0-p247 --rvm --app https://github.com/k2works/sinatra_bootstrap
$ docker build -t='k2works/sampel_gitrepo' .
$ docker run -d -p 9292:9292 --name=test_sample_gitrepo k2works/sample_gitrepo 'rvm use 2.0.0-p247;rackup config.ru'

Ruby on RailsプロジェクトのDockerfileをつくる。

$ rails new sample_rails_app
$ cd sample_rails_app
$ rdbock 2.1.0 --rvm --app .
$ docker build -t='k2works/sample_rails_app' .
$ docker run -d -p 3000:3000 --name=test_rails k2works/sample_rails_app 'rvm use ruby-2.1.0;rails server'

注意:Dockerfileは編集する必要あり。

おまけもDocker Hubと連携する



GitHubにおまけを追加プッシュした後に上記の追加をする。

参照

18
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
19