Skip to content

Commit

Permalink
Use bootsnap to reduce resource usage spike on startup.
Browse files Browse the repository at this point in the history
Bootsnap has been enabled as standard for new Rails apps since Rails
5.2. It reduces startup time and - more importantly - reduces spikes in
resource usage at startup
([example](https://www.github.com/alphagov/government-frontend/pull/2626)).
  • Loading branch information
sengi committed Jan 15, 2023
1 parent cbdb23e commit 5cb4639
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 0 deletions.
2 changes: 2 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ WORKDIR $APP_HOME
COPY Gemfile* .ruby-version ./
RUN bundle install
COPY . .
RUN bootsnap precompile --gemfile .
RUN rails assets:precompile && rm -fr log


Expand All @@ -18,6 +19,7 @@ ENV GOVUK_APP_NAME=smart-answers

WORKDIR $APP_HOME
COPY --from=builder $BUNDLE_PATH $BUNDLE_PATH
COPY --from=builder $BOOTSNAP_CACHE_DIR $BOOTSNAP_CACHE_DIR
COPY --from=builder $APP_HOME .

USER app
Expand Down
1 change: 1 addition & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ ruby File.read(".ruby-version").chomp
gem "rails", "7.0.4"

gem "ast"
gem "bootsnap", require: false
gem "gds-api-adapters"
gem "gds_zendesk"
gem "govspeak"
Expand Down
4 changes: 4 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,8 @@ GEM
rack (>= 0.9.0)
binding_of_caller (1.0.0)
debug_inspector (>= 0.0.1)
bootsnap (1.15.0)
msgpack (~> 1.2)
brakeman (5.2.3)
builder (3.2.4)
byebug (11.1.3)
Expand Down Expand Up @@ -218,6 +220,7 @@ GEM
minitest (>= 4, < 6)
mocha (2.0.2)
ruby2_keywords (>= 0.0.5)
msgpack (1.6.0)
multi_xml (0.6.0)
multipart-post (2.1.1)
net-imap (0.3.4)
Expand Down Expand Up @@ -430,6 +433,7 @@ DEPENDENCIES
ast
better_errors
binding_of_caller
bootsnap
byebug
gds-api-adapters
gds_zendesk
Expand Down
1 change: 1 addition & 0 deletions config/boot.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)

require "bundler/setup" # Set up gems listed in the Gemfile.
require "bootsnap/setup"

0 comments on commit 5cb4639

Please sign in to comment.