Как ускорить процесс активов рейка (rake assets:precompile
) при создании образа рельсов докера с rails_admin
?
Проблема:
Я пытаюсь создать образ докера приложения rails (ниже Dockerfile), но шаг RUN bundle exec rake assets:precompile
зависает и занимает огромное время, до 20 минут и иногда докер останавливает сборку образа из-за тайм-аута выполнения. Я думаю, что это связано с rails_admin
, поэтому я отключил его, и изображение было построено без ожидания все это время. Когда rails_admin включен, в журнале докера указывается, что задача генерирует мои собственные ресурсы, затем она блокируется на значительное время, прежде чем отображаются активы rails_admin, и продолжает сборку. Должен ли я собрать ресурсы перед запуском процесса сборки, есть что-то связанное с rails_admin, что должно быть исправлено?
Os / Docker
- Os: Windows 10
- Docker: версия 18.03.1-ce-win65
Dockerfile
FROM ruby:2.3.3
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs
# Set an environment variable where the Rails app is installed to inside of Docker image
ENV RAILS_ROOT /var/www/unk-web-app
RUN mkdir -p $RAILS_ROOT
# Set working directory
WORKDIR $RAILS_ROOT
# Setting env up
#ENV RAILS_ENV='production'
#ENV RACK_ENV='production'
# Adding gems
COPY Gemfile Gemfile
COPY Gemfile.lock Gemfile.lock
# https://stephencodes.com/upgrading-ruby-dockerfiles-to-use-bundler-2-0-1/
ENV BUNDLER_VERSION 2.0.2
#set the version in Gemfile
RUN bundle install --jobs 20 --retry 5 --without development test
# Adding project files
COPY . .
# get the database url from docker image building
ARG DATABASE_URI
ARG RAILS_ENV
# Set env
ENV DOCKER 1
RUN bundle exec rake db:migrate
RUN bundle exec rake assets:precompile
EXPOSE 3000
CMD ["bundle", "exec", "puma", "-C", "config/puma.rb"]