Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
19
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

@kojima4twt

Ruby on Rails の環境を Docker で構築して RubyMine でコーディング (Mac Book Pro)

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 を選択します。
    スクリーンショット 2017-08-26 15.57.08.png

  • Gemがインストールされているのを確認して選択します。
    RubyMineのメイン画面にソースを表示して『Cannot find 'クラス名' more...』で黄色表示されていた箇所がなくなりオールグリーンになれば成功です。
    スクリーンショット 2017-08-26 15.57.58.png

左下のDockerコンテナの起動状況を確認できるツールが便利で良いですね。
スクリーンショット 2017-08-26 16.18.16.png

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
19
Help us understand the problem. What are the problem?