#Ruby on Rails の環境を Docker で構築して RubyMine でコーディング (Mac Book Pro)
前回の記事のDocker設定はbundle専用のコンテナを用意してGemのインストールの効率化をしていたのですが、この設定だとRubyMineの『Gemをリモートでインストールする機能』が上手く働かないため、Dockerの設定を変更してコーディングに特化した環境にします。
bundle専用コンテナと『Gemをリモートでインストールする機能』を両立する方法が見つかった場合は更新しようと考えています。
前回の記事
Dockerの設定、実行
- 前回のDockerfileの以下をコメントにします。
ENV BUNDLE_JOBS=4
BUNDLE_PATH=/bundle
Dockerfile
FROM ruby:2.3.3
RUN apt-get update -qq && \
apt-get install -y build-essential libpq-dev nodejs
RUN mkdir /myapp
WORKDIR /myapp
ADD Gemfile .
ADD Gemfile.lock .
#ENV BUNDLE_JOBS=4 \
# BUNDLE_PATH=/bundle
RUN bundle install
ADD . .
- 前回のdocker-compose.ymlの以下をコメントにします。
volumes_from:
- bundle
bundle:
image: busybox
volumes:
- /bundle
docker-compose.yml
version: '2'
services:
web:
build: .
#command: bundle exec rails s -p 3000 -b 0.0.0.0
command: bundle exec rdebug-ide --port 1234 --dispatcher-port 26162 --host 0.0.0.0 -- bin/rails s -b 0.0.0.0 -p 3000
container_name: web
depends_on:
- db
ports:
- "127.0.0.1:3000:3000"
- "127.0.0.1:1234:1234"
- "127.0.0.1:26162:26162"
stdin_open: true
tty: true
volumes:
- .:/myapp
# volumes_from:
# - bundle
db:
image: postgres
# bundle:
# image: busybox
# volumes:
# - /bundle
- Dockerfileを 再ビルドします。
$ docker-compose stop
$ docker-compose build
- データベースを再作成します。
$ docker-compose run web rake db:create
$ docker-compose run web rake db:migrate
- dockerのコンテナを起動します。
$ docker-compose up
RubyMineでDockerのGemをリモートインストールして、コーディング開始
- Dockerのイメージの中から [プロジェクトのフォルダ名]_web を選択します。
- Gemがインストールされているのを確認して選択します。
RubyMineのメイン画面にソースを表示して『Cannot find 'クラス名' more...』で黄色表示されていた箇所がなくなりオールグリーンになれば成功です。