Improve docker compose performance (#347) 🤩
* Fix warning Integrity check: System parameters don't match * Reduce commands required to use docker-compose and update quick-setup doc Data will still persist when stopping and restarting containers. To destroy the data can use docker-compose down --volumes * Moved webpacker-dev-server to its own service * cache bundle and yarn - improve volume performance - env conditional statements * Fix inconsistent build results found during testing
This commit is contained in:
@@ -1,5 +1,16 @@
|
||||
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 \
|
||||
@@ -18,13 +29,24 @@ RUN apt-get update \
|
||||
|
||||
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
|
||||
|
||||
ENV RAILS_SERVE_STATIC_FILES true
|
||||
ENV RAILS_ENV=production
|
||||
|
||||
RUN bundle
|
||||
RUN SECRET_KEY_BASE=precompile_placeholder bundle exec rake assets:precompile
|
||||
# generate production assets if production environment
|
||||
RUN if [ "$RAILS_ENV" = "production" ]; then \
|
||||
SECRET_KEY_BASE=precompile_placeholder bundle exec rake assets:precompile; \
|
||||
fi
|
||||
|
||||
# Add a script to be executed every time the container starts.
|
||||
COPY ./docker/entrypoint.sh /usr/bin/
|
||||
|
||||
Reference in New Issue
Block a user