Я использую докер для разработки приложения для рельсов. Файл докер выглядит следующим образом:Установленные драгоценные камни, не обнаруженные связующим, когда BUNDLE_PATH изменен с помощью Docker
FROM ruby:1.9.3
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev vim
ENV APP_HOME /next-reg
RUN mkdir $APP_HOME
WORKDIR $APP_HOME
ENV BUNDLE_PATH /box
ADD . $APP_HOME
RUN gem install gem1.gem gem2.gem
COPY Gemfile Gemfile
COPY Gemfile.lock Gemfile.lock
RUN bundle install
Как вы можете видеть, что я изменить bundle_path
, это из-за an article показывает, как мы можем упорствовать загрузки драгоценных камней. Так что сверхурочное время, когда кеш докера нагревается, он снова объединяется и берет FOREVER.
Когда я docker build
, он успешно устанавливает драгоценные камни, после чего он не может найти их на связке. Может ли кто-нибудь дать мне руку с сохраняющимися драгоценными камнями, установить мои собственные драгоценные камни и заставить ее работать?
Прежде чем я сменил BUNDLE_PATH
, сработала сборка, она просто повторно включалась часто без изменений в файл gem (потому что, я думаю, кеш изображения докеров нагрелся).
Мой докер-Compose, как это:
db:
image: postgres
volumes:
- ~/.docker-voumes/postgres/data:/var/lib/postgresql/data
# This is to hold and persist ruby gems, referenced in web and in web's dockerfile.
gem_files:
image: busybox
volumes:
- /box
web:
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/next-reg
volumes_from:
- gem_files
ports:
- "3000:3000"
- "8000:8000"
links:
- db
env_file:
- .myenv.env
Я думаю, что веб-служба должна знать и о переменной среды BUNDLE_PATH. – maletor