LoginSignup
6
1

More than 3 years have passed since last update.

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

Last updated at Posted at 2018-07-29

はじめに

学習で使用する為、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

6
1
2

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
6
1