FROM ruby:2.6.5-slim # ARG default to production settings # For development docker-compose file overrides ARGS ARG BUNDLE_WITHOUT="development:test" ENV BUNDLE_WITHOUT ${BUNDLE_WITHOUT} ARG RAILS_SERVE_STATIC_FILES=true ENV RAILS_SERVE_STATIC_FILES ${RAILS_SERVE_STATIC_FILES} ARG RAILS_ENV=production ENV RAILS_ENV ${RAILS_ENV} RUN apt-get update \ && apt-get -qq -y install \ build-essential \ curl \ git \ imagemagick \ libpq-dev \ postgresql-client \ && curl -L https://deb.nodesource.com/setup_12.x | bash - \ && curl https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ && echo 'deb https://dl.yarnpkg.com/debian stable main' > /etc/apt/sources.list.d/yarn.list \ && apt-get update \ && apt-get -qq -y install nodejs yarn \ && gem install bundler \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* RUN mkdir -p /app WORKDIR /app COPY Gemfile Gemfile.lock ./ # Do not install development or test gems in production RUN if [ "$RAILS_ENV" = "production" ]; then \ bundle install -j 4 -r 3 --without development test; \ else bundle install -j 4 -r 3; \ fi COPY package.json yarn.lock ./ RUN yarn install COPY . /app # generate production assets if production environment RUN if [ "$RAILS_ENV" = "production" ]; then \ SECRET_KEY_BASE=precompile_placeholder bundle exec rake assets:precompile; \ fi