2014/10/28

fastladderが動くDockerイメージを作った

会社のブログに書こうと思ってやってんたんだけど結果的にうまくいかなかったのでこっちに書く。ちょっと思い立ってMac OS X上でfastladderを動かしてみた。

(1)boot2dockerを起動する。
$ boot2docker start
(2)フォルダを掘る。
$ mkdir flodoc
$ cd flodoc
(3)Dockerfileを作成する。
$ vi Dockerfile
----
FROM centos
MAINTAINER smokeymonkey@gmail.com

RUN yum update  -y
RUN yum install -y ruby-devel rubygems git gcc gcc-c++ make build-essential libxml2-devel libxslt-devel libcurl-devel sqlite sqlite-devel

WORKDIR /opt
RUN git clone git://github.com/fastladder/fastladder.git

WORKDIR /opt/fastladder
RUN echo "gem 'therubyracer'" >> ./Gemfile
RUN cp config/database.yml.sqlite3 config/database.yml

RUN adduser docker
RUN chown -R docker:docker .
USER docker
ENV PATH $PATH:/home/docker/.local/bin:/home/docker/bin

RUN gem install bundler --no-ri --no-rdoc

RUN bundle config build.nokogiri --use-system-libraries
RUN bundle install
RUN bundle exec rake db:create db:migrate
RUN bundle exec rake setup # Setup files for development

RUN bundle exec ruby script/crawler --daemon
CMD bundle exec rails server -p 3000

EXPOSE 3000
----

(4)buildする。
$ docker build -t local/fastladder .
Successfully built b1ac79c34a97
$ docker images
REPOSITORY                 TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
local/fastladder           latest              b1ac79c34a97        3 days ago          876.9 MB
(5)起動。
$ docker run -d -p 3000:3000 local/fastladder
71893613f8955dcb433518aabc28241ad35ff156985c1a96dca7275ec609bede
$ docker ps
CONTAINER ID        IMAGE                     COMMAND                CREATED             STATUS              PORTS                    NAMES
71893613f895        local/fastladder:latest   "/bin/sh -c 'bundle    3 days ago          Up 50 seconds       0.0.0.0:3000->3000/tcp   pensive_sinoussi
(6)boot2docker ipで接続先IPアドレスを確認。
$ boot2docker ip
The VM's Host only interface IP address is: 192.168.59.103
(7)接続する。

(8)Create new accountしたらログインされる。


ここまでは良いんだけど、よく考えたらコンテナを停止したら設定が全部飛ぶんでした。だからDBを外に出さないとダメだった。
アホか俺は。


Docker入門 Immutable Infrastructureを実現するDocker入門 Immutable Infrastructureを実現する
松原豊,米林正明

技術評論社
売り上げランキング : 4902

Amazonで詳しく見る by AZlink