2023-03-12 10:27:02 -04:00
|
|
|
# Make sure it matches the Ruby version in .ruby-version and Gemfile
|
|
|
|
ARG RUBY_VERSION=3.2.0
|
|
|
|
FROM ruby:$RUBY_VERSION
|
|
|
|
|
2023-03-12 10:39:39 -04:00
|
|
|
# Rails app lives here
|
|
|
|
WORKDIR /rails
|
|
|
|
|
2023-03-12 10:27:02 -04:00
|
|
|
# Set production environment
|
|
|
|
ENV RAILS_LOG_TO_STDOUT="1" \
|
|
|
|
RAILS_SERVE_STATIC_FILES="true" \
|
|
|
|
RAILS_ENV="production" \
|
|
|
|
BUNDLE_WITHOUT="development:test"
|
|
|
|
|
|
|
|
# Install application gems
|
|
|
|
COPY Gemfile Gemfile.lock ./
|
|
|
|
RUN bundle install
|
|
|
|
|
|
|
|
# Copy application code
|
|
|
|
COPY . .
|
|
|
|
|
|
|
|
# Precompile bootsnap code for faster boot times
|
|
|
|
RUN bundle exec bootsnap precompile --gemfile app/ lib/
|
|
|
|
|
|
|
|
# Precompiling assets for production without requiring secret RAILS_MASTER_KEY
|
|
|
|
RUN SECRET_KEY_BASE_DUMMY=1 bundle exec rails assets:precompile
|
|
|
|
|
|
|
|
# Entrypoint prepares database and starts app on 0.0.0.0:3000 by default,
|
|
|
|
# but can also take a rails command, like "console" or "runner" to start instead.
|
|
|
|
ENTRYPOINT ["/rails/bin/docker-entrypoint"]
|
|
|
|
EXPOSE 3000
|