Docker & Rails 환경에서 gem 지속

5355 단어 DockerRails

본 보도에 관하여 (사절)


이 글은 지루한 프로그래밍 초보자들이 프로그래밍 기술을 배우고 접하기 위해 갔던 비망록으로 쓴 것이다.양해해 주십시오.
나는 기꺼이 당신의 지적을 받아들일 것입니다🙇‍♂️

일어난 일


하면, 만약, 만약...
...
web_1  | Bundler::GemNotFound: Could not find gem 'rspec-rails' in any of the gem sources listed in your Gemfile.
...
myapp_web_1 exited with code 1
화가 나서 마음대로 나갔다.
이상하다, 설치해야 할gem가 확실히 없다
한 번 떨어지면 다시 docker-compose up 문제없이 움직인다.
이것도 괜찮지만, 매번 구축된 후에 컨테이너를 가동하는 것은 매우 번거롭다고 생각한다.
조사 결과 볼륨의 영구화를 통해 이런 문제가 해소될 것으로 보인다.

docker-compose.yml 수정


현재 파일의 내용입니다.
docker-compose.yml
ersion: '3'
services:
  db:
    image: postgres
    volumes:
      - ./tmp/db:/var/lib/postgresql/data
    environment:
      - POSTGRES_PASSWORD=password
  web:
    build: .
    command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
    volumes:
      - .:/myapp
    ports:
      - "3000:3000"
    depends_on:
      - db
이것까지
docker-compose.yml
ersion: '3'
services:
  db:
    image: postgres
    volumes:
      - ./tmp/db:/var/lib/postgresql/data
    environment:
      - POSTGRES_PASSWORD=password
  web:
    build: .
    command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
    volumes:
      - .:/myapp
      - gem_data:/usr/local/bundle # <= ココと
    ports:
      - "3000:3000"
    depends_on:
      - db
volumes:
  gem_data: # <= ココ。
용기에 들어가 경로를 확인할 수 있습니다.
$ docker-compose exec web bash
$ gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 3.0.3
  - RUBY VERSION: 2.6.5 (2019-10-01 patchlevel 114) [x86_64-linux]
  - INSTALLATION DIRECTORY: /usr/local/bundle
  ...(略)

현재, 당신은 지속적인gem 환경을 구축할 수 있습니다.
gem 추가 시도
Gemfile
+ gem 'rails-erd'
이후 시도docker-compose build.
$ docker-compose exec web bundle install
그런 다음 컨테이너를 제거한 후 시작합니다.
$ docker-compose down
$ docker-compose up

문제 없어요. 컨테이너 가동했어요!
컨테이너를 삭제하기 전에 설치한gem도 잘 설치되어 있다.
$ docker-compose exec web bundle list |grep 'rails-erd'
  * rails-erd (1.6.0)

참고 자료


이번 작업에서 아래의 페이지를 참고할 수 있도록 허락해 주십시오.많이 배웠어요.정말 감사합니다.🙇‍♂️
https://nishinatoshiharu.com/datavolume-for-gem/

좋은 웹페이지 즐겨찾기