前回までのあらすじ
- boot2docker でDockerのVMを作る
- Dockerの基本操作を覚える
- docker commit して環境をインストールしたコンテナを作成した
Dockerfile
さて。今回はDockerfileを書いてみます。
Chefのレシピのようにコンテナ起動時に実行されるスクリプトで、環境のインストールを自動化するためのファイルです。
役割としてはChefのレシピに近いのですが、記述方法が比較的シンプル(シェルのコマンドほぼそのまま)なので、
Chefよりもとっつきやすいと思います。
Ruby2.0 + Rails4.1
環境の作り方はここを参考にしてます。
Dockerfile syntax highlighting
というプラグインがあったので使ってます。
Dockerfile一発でRubyの開発環境を作る
Chefより簡単そう、とか言いながらエラー出まくり試行錯誤しまくり。
bashrcとかはちゃんと読んでくれないっぽいのですがやり方が悪いのか、、、
Dockerfile
FROM centos
MAINTAINER Yuto Ogi <jacoyutorius@gmail.com>
RUN echo "install ruby environment"
RUN yum install -y git vim sudo tar wget
RUN yum install -y gcc make gcc-c++ zlib-devel httpd-devel openssl-devel curl-devel sqlite-devel
RUN cd /root/ && wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.1.tar.gz
RUN cd /root/ && tar zxvf ruby-2.1.1.tar.gz
RUN cd /root/ruby-2.1.1 && ./configure && make && make install
RUN gem install bundler --no-ri --no-rdoc -V
RUN gem install rb-readline --no-ri --no-rdoc -V
RUN echo "Install rails"
RUN gem install rails --no-ri --no-rdoc -V
RUN echo rails -v
RUN git clone https://github.com/jacoyutorius/todolist.git
WORKDIR /todolist
RUN bundle install
EXPOSE 3000
RUN rails s
Railsのアプリは数分で適当に作ったToDoアプリをcloneしてます。。。
docker build
docker@boot2docker:~$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
yuto/centos rails 2087cad9f6c1 5 days ago 1.483 GB
docker build -t yuto/centos .
Uploading context 3.072 kB
Uploading context
Step 0 : FROM centos
---> bee3be095dae
Step 1 : MAINTAINER Yuto Ogi <jacoyutorius@gmail.com>
---> Using cache
---> a7b42e461fb7
~ 省略 ~
=> Booting WEBrick
=> Rails 4.0.2 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2014-05-07 12:43:32] INFO WEBrick 1.3.1
[2014-05-07 12:43:32] INFO ruby 2.1.1 (2014-02-24) [x86_64-linux]
[2014-05-07 12:43:32] INFO WEBrick::HTTPServer#start: pid=1 port=3000
ということで、なんとかDockerfileでRailsのアプリを起動するとこまでやってみました。
次はいよいよAWS ElasticBeanstalkかなー。