Dockerでrails環境を構築する

zwym-docker.and.rails

Gakuです。

前回の記事で、Dockerfileを作成しrubyコマンドを実行するところまで備忘録として残しました。

DockerUbuntudocker上のrubyでHello World出力してみる
rubyのベースイメージをダウンロードする Docker上でrubyを実行するために、DockerHubからrubyのイメージをダウンロードします。 下記...

今回はそのDockerfileを編集し、rails環境を構築します。

Dockerfileを編集

Dockerfileを以下のように編集し、rails環境構築用Dockerfileを作成します。

vi Dockerfile
FROM ruby:2.3.1

ENV APP_ROOT /usr/src/docker-rails-test

#Workディレクトリの設定
WORKDIR $APP_ROOT

#apt-getでtoolのインストール
RUN apt-get update && \
        apt-get install -y nodejs && \
        apt-get install -y vim

#rails導入
RUN gem install --no-ri --no-rdoc rails -v 5.0.0.1

#docker runの-pのヒント これでポート解放されるわけではない
#あくまで道しるべ
EXPOSE 3000:3000

#bashの立ち上げ
CMD ["/bin/bash"]

これで準備完了です( ^ω^ )

railsコンテナを立ててみる

作成したDockerファイルをビルドしてイメージを作成します。

docker build -t gaku/rails .

作成したイメージからコンテナを作成する。

docker run -it -p 3000:3000 -v "$PWD":/usr/src/docker-rails-test gaku/rails

そしたら仮想環境へアクセスする形となるので、いつもどおりrailsアプリケーションを作成してアプリケーションを立ち上げる

rails new test1
cd test1
rails s -b 0.0.0.0

docker-machineのipを確認しておき、そのipでホストPCのブラウザよりアクセスする。
スクリーンショット 2016-08-16 10.21.42

おつかれさまでした〜( ^ω^ )

作成したコンテナを操作する

一旦exitコマンドでコンテナを抜けるとコンテナが終了してしまう。
その際はコンテナを起こしてあげて、アクセスする必要がある。
下記コマンドで上記操作は可能です。

docker start コンテナID
docker attach コンテナID

おわりに

完全にDockerfileのCMDコマンドではまりました。。。つらかった。
CMDでbashを立ち上げるように設定するのがミソですね。
また、docker run時にいろいろなオプションを付けるのですが、その点をミスらなければすんなりrailsの導入は可能です。
次回はDBをpostgreSQLへ変更した場合の対処法などを掲載したいと思ってます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です