Я использую докер для разработки приложения для рельсов. Файл докера выглядит так:
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
из-за статья, показывающая, как сохранить загрузку gem. Так что сверхурочно, когда кеш докера нагревается, он повторно связывается и занимает НАВСЕГДА.
Когда я docker build
, он успешно устанавливает драгоценные камни, но не может найти их в комплекте. Может ли кто-нибудь помочь мне с постоянными драгоценными камнями, установить мои собственные драгоценные камни и заставить их работать?
До того, как я изменил BUNDLE_PATH
, сборка работала, она просто часто переустанавливалась без изменений в файле гема (потому что, я думаю, кеш образа докера нагрелся).
Мой докер-композитор выглядит так:
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
ENV GEM_PATH /xxx; ENV GEM_HOME /xxx
вместе с ним. Как-нибудь попробую, спасибо! 16.05.2017