START30 BLOG
Web開発に関する備忘録や
日々の雑記ブログ
  • Ruby on Rails
  • 2018年8月15日
ENTRY TITLE

Docker環境にRailsをインストールして開発するまでの手順例

  • LINEで送る
  • このエントリーをはてなブックマークに追加

なんとなく自分でももっとスマートなインストールの方法があるのではないかと思いながら、とりあえず問題なく動作するしってことで一段落してるので現状の開発環境構築の手順の備忘録です。ちなみに今回は既存のRailsアプリをDocker環境で動作させるときにやった手順です。

とりあえず新規にRailsをインストールし、のちほどアプリのデータをマウントし直しています。

※ パスやディレクトリ名は適宜変更が必要。

インストールからサーバ起動まで一連の流れ

  • 一旦、rails install用のgemfileを置いてbuildする
  • $ docker-compose run MYAPP rails new でRailsインストール
  • Dockerfileを編集してインストールしたappデータをマウントする
  • で、サーバースタート(再度bundle install)

Railsインストール

  • 一旦インストール用の環境を構築する。
  • Dockerfileを作成。(MYAPPは適宜変更)
  • docker-compose.ymlを作成。
  • Railsインストール用のGemfileを作成。
  • docker-compose run  でコマンド実行。

[dockerfile]


FROM ruby:2.5.1
ENV LANG C.UTF-8

RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs

ENV APP_ROOT /usr/src/MYAPP
WORKDIR $APP_ROOT

ADD Gemfile $APP_ROOT
ADD Gemfile.lock $APP_ROOT

RUN bundle install

ADD . /MYAPP

EXPOSE 3000
CMD ["rails", "server", "-b", "0.0.0.0"]
 

[docker-compose.yml]


version: '3'
  services:
    MYAPP:
      container_name: MYAPP
      build: ./rails
      volumes:
        - /Users/hoge/huga/piyo/MYAPP:/usr/src/MYAPP
      ports:
        - "3000:3000"
      depends_on:
        - MYAPP_db
 

[Gemfile]


source "https://rubygems.org"
gem 'rails', '5.2.0'
 

[bash]


$ docker-compose run MYAPP rails new .
 

サーバ起動

次に、既存のアプリデータをマウントし直してサーバを起動します。

  • Dockerfileを編集。
  • docker-compose.ymlを編集。
  • docker-compose run  でコマンド実行(サーバ起動)。

[Dockerfile]


FROM ruby:2.5.1
ENV LANG C.UTF-8

RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs

ENV APP_ROOT /usr/src/MYAPP
WORKDIR $APP_ROOT

ADD ./html/MYAPP/Gemfile $APP_ROOT
ADD ./html/MYAPP/Gemfile.lock $APP_ROOT

RUN bundle install

ADD ./html/MYAPP $APP_ROOT
 

[docker-compose.yml]


version: '3'
  services:
    MYAPP:
      container_name: MYAPP
      build: .
      command: bundle exec rails s -p 3000 -b '0.0.0.0'
      volumes:
        - /Users/hoge/fuga/piyo/MYAPP:/usr/src/MYAPP
      ports:
        - "3000:3000"
      depends_on:
        - MYAPP_db
 

[bash]


$ docker-compose up -d
 

以上で、既存アプリが実行できるはず。

結構もちゃもちゃした。もっとDockerに詳しくなりたい。

参考サイト

  • LINEで送る
  • このエントリーをはてなブックマークに追加

RELATED POST関連する記事