docker-compose를 이용한 Rails5 앱에서 bootstrap4 사용

소스 세트는 이쪽에 있으므로, docker-compose나 Gemfile, application.scss의 설정등 참고해 주세요.
htps : // 기주 b. 이 m / m0 모두 / 돈 - st

환경


  • macOS Sierra
  • docker for Mac 17.09.0-ce
  • Ruby 2.4.2
  • Rails 5.1.3

  • 도입 방법



    docker-compose로 Rails5 개발 환경 구축



    공식 거리로 진행합니다.
    htps : // / cs. 도 c r. 코 m / 코 m 포세 / 라이 ls / #로 푹신 푹신 p 로지 ct

    Rails5에서 bootstrap4 사용



    bootstrap4를 이용하기 위해서 twbs/bootstrap-rubygem 를 사용합니다.

    공식 거리로 진행합니다.
    htps : // 기주 b. 코 m / twbs / 보오 tst 등 p 루 바이 게 m # 아루 바이 온 루스 ls

    공식에서는 상기 순서를 밟으면 bootstrap4를 사용할 수 있게 되어 있습니다만, 제 환경에서는 아래와 같은 에러가 나와 버렸습니다.

    발생한 오류


    File to import not found or unreadable: bootstrap
    

    bootstrap을 읽을 수 없다고합니다.


    $ docker-compose up -d 그래도 안돼. 다시 시도하면 웹 (앱) 컨테이너가 상태 1에서 비정상적으로 종료되고 떨어집니다.

    대처법



    컨테이너를 다시 빌드하고 다시 시작하면 적용되었습니다.
    $ docker-compose build
    
    $ docker-compose ps
         Name                   Command               State           Ports
    --------------------------------------------------------------------------------
    todolist_db_1    docker-entrypoint.sh postgres    Up      5432/tcp
    todolist_web_1   bundle exec rails s -p 300 ...   Up      0.0.0.0:3003->3000/tcp
    

    build, 재부팅해도 에러가 나오면, 다시 재부팅해 봅니다.
    $ docker-compose up -d
    

    원인



    rebuild 하지 않으면 안되는 것은 Dockerfile 를 갱신했을 때만이라고 생각하고 있었습니다만, Gemfile 를 갱신했을 때도 $ docker-compose build 재차 하지 않으면 안 된다고 하는 것.

    공식적으로 쓰고 있었는데 놓쳤습니다.

    Now that you’ve got a new Gemfile, you need to build the image again. (This, and changes to the Gemfile or the Dockerfile, should be the only times you’ll need to rebuild.)

    요약



    docker-compose를 사용한 Rails 앱 개발에서는 Gemfile을 업데이트했을 때 build를 다시 할 필요가 있다.

    참고 링크



    회피하는 방법도 있다고 합니다.
    docker-compose로 Rails의 Gem을 업데이트 할 때 docker build를 피하고 싶습니다 | Qiita

    좋은 웹페이지 즐겨찾기