Edited at

DockerでRails5.2開発環境を構築


はじめに

学習で使用する為、DockerでRails環境を構築した時のメモです

こちらのサイトを参考にさせて頂きました

総合的な学習のお時間

今回は学習用にRails環境を使いたかったので一つのコンテナで複数のアプリケーションを何個も作ることが可能なワークスペースのようなイメージをつくりました


環境

Windows 10 Pro

Docker for Windows

Windows PowerShell


バージョン

Rails 5.2.0

Ruby 2.5.1

※2018/7/26 時点での最新安定バージョンを使いました


Dockerのインストール

こちらのサイトからダウンロードしてインストールすると起動します

https://www.docker.com/docker-windows


Dockerfileの作成


FROM ruby:2.5.1

ENV APP_ROOT /usr/src/workspace

WORKDIR $APP_ROOT

RUN apt-get update && \
apt-get install -y nodejs \
default-mysql-client \
postgresql-client \
sqlite3 \
--no-install-recommends && \
rm -rf /var/lib/apt/lists/*

COPY Gemfile $APP_ROOT
COPY Gemfile.lock $APP_ROOT

RUN \
echo 'gem: --no-document' >> ~/.gemrc && \
cp ~/.gemrc /etc/gemrc && \
chmod uog+r /etc/gemrc && \
bundle config --global build.nokogiri --use-system-libraries && \
bundle config --global jobs 4 && \
bundle install && \
rm -rf ~/.gem


Gemfileの作成

source "https://rubygems.org"

gem 'rails', '5.2.0'

さらに空のGemfile.lockも作成しました


dockerイメージの作成

上記手順で作成したDockerfileを基にdocker imageを作成します

docker build -t [イメージ名] .

※右辺の「.」はDockerfileのあるディレクトリを指定しています

docker images

でimageが出来ていることを確認できます


dockerコンテナの作成

docker run -d -p 3000:3000 -it -v [連携したいホストマシンのディレクトリ]:/usr/src/workspace [イメージID]


dockerコンテナに入る

docker exec -it [container_id] /bin/bash


コンテナ内でGemfileの作成

source "https://rubygems.org"

gem 'rails', '5.2.0'

※Gemfileを作成したディレクトリを指定してコンテナを作成した場合はすでに存在しているので不要です


Railsアプリケーションを作成

rails new [appName]


Railsアプリケーションを起動

cd [appName]

rails server -d -b [dockerゲストのIPアドレス]

ipアドレスは

ip a

で確認できます


起動確認

ホストマシンから

http://localhost:3000

へアクセス

rails.jpg


railsサーバの停止

プロセスIDの確認

ps -ef | grep puma

kill -9 [プロセスID]


おわり

お手軽にrailsアプリケーションを作成することが出来るようになりました

完成したイメージはこちらにありますのでもし必要な方がいましたら使っていただけたら幸いです

docker pull amnihs/rails_5_2_0