3f403c9e7a
* 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
57 lines
1.6 KiB
Docker
57 lines
1.6 KiB
Docker
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 \
|
|
&& 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
|
|
|
|
# Add a script to be executed every time the container starts.
|
|
COPY ./docker/entrypoint.sh /usr/bin/
|
|
RUN chmod +x /usr/bin/entrypoint.sh
|
|
ENTRYPOINT ["entrypoint.sh"]
|
|
|
|
EXPOSE 3000
|
|
CMD ["rails", "server", "-b", "0.0.0.0", "-p", "3000"]
|