Комплектация exec rake assets: прекомпиляция занимает невероятное время с помощью docker и rails_admin - PullRequest
0 голосов
/ 14 октября 2019

Как ускорить процесс активов рейка (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"]
...