Ruby on Rails 환경을 Docker로 구축하고 RubyMine으로 코딩 (Mac Book Pro)

Ruby on Rails 환경을 Docker로 구축하고 RubyMine으로 코딩 (Mac Book Pro)



전회의 기사의 Docker 설정은 bundle 전용의 컨테이너를 준비해 Gem의 인스톨의 효율화를 하고 있었습니다만, 이 설정이라면 RubyMine의 「Gem를 원격으로 인스톨 하는 기능」이 잘 작동하지 않기 때문에, Docker 설정을 변경하여 코딩에 특화된 환경을 만듭니다.

bundle 전용 컨테이너와 「Gem을 원격으로 인스톨 하는 기능」을 양립하는 방법이 발견되었을 경우는 갱신하려고 생각하고 있습니다.

마지막 기사


  • ぃ tp // 코 m / 코지마 4 twt / ms / 7995 아 09 아 c7d1b307b48b

  • 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:
    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...」로 노란색으로 표시되어 있던 개소가 없어져 올그린이 되면 성공입니다.

  • 왼쪽 하단의 Docker 컨테이너의 시작 상태를 확인할 수 있는 도구가 편리하고 좋네요.

    좋은 웹페이지 즐겨찾기