Skip to content

Commit

Permalink
Merge pull request #876 from alphagov/add-puma
Browse files Browse the repository at this point in the history
Add Puma via govuk_app_config
  • Loading branch information
Karl Baker authored Oct 27, 2021
2 parents 8572751 + 7706557 commit c0b906f
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 48 deletions.
3 changes: 1 addition & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
ARG base_image=ruby:2.7.2
FROM ${base_image}
RUN apt-get update -qq && apt-get upgrade -y && apt-get install -y build-essential && apt-get clean
RUN gem install foreman

ENV GOVUK_APP_NAME content-store
ENV GOVUK_CONTENT_SCHEMAS_PATH /govuk-content-schemas
Expand All @@ -17,4 +16,4 @@ ADD Gemfile* $APP_HOME/
RUN bundle install
ADD . $APP_HOME

CMD foreman run web
CMD bundle exec puma
7 changes: 4 additions & 3 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -137,8 +137,9 @@ GEM
activesupport (>= 5.0)
govuk-content-schema-test-helpers (1.6.1)
json-schema (~> 2.8.0)
govuk_app_config (4.0.1)
govuk_app_config (4.1.0)
logstasher (>= 1.2.2, < 2.2.0)
puma (~> 5.0)
sentry-rails (~> 4.5.0)
sentry-ruby (~> 4.5.0)
statsd-ruby (~> 1.5.0)
Expand Down Expand Up @@ -248,7 +249,7 @@ GEM
public_suffix (4.0.6)
puma (5.3.2)
nio4r (~> 2.0)
racc (1.5.2)
racc (1.6.0)
rack (2.2.3)
rack-cache (1.12.0)
rack (>= 0.4)
Expand Down Expand Up @@ -412,7 +413,7 @@ GEM
chronic (>= 0.6.3)
xpath (3.2.0)
nokogiri (~> 1.8)
zeitwerk (2.4.2)
zeitwerk (2.5.1)

PLATFORMS
ruby
Expand Down
45 changes: 2 additions & 43 deletions config/puma.rb
Original file line number Diff line number Diff line change
@@ -1,43 +1,2 @@
# Puma can serve each request in a thread from an internal thread pool.
# The `threads` method setting takes two numbers: a minimum and maximum.
# Any libraries that use thread pools should be configured to match
# the maximum value specified for Puma. Default is set to 5 threads for minimum
# and maximum; this matches the default thread size of Active Record.
#
max_threads_count = ENV.fetch("RAILS_MAX_THREADS", 5)
min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count }
threads min_threads_count, max_threads_count

# Specifies the `worker_timeout` threshold that Puma will use to wait before
# terminating a worker in development environments.
#
worker_timeout 3600 if ENV.fetch("RAILS_ENV", "development") == "development"

# Specifies the `port` that Puma will listen on to receive requests; default is 3000.
#
port ENV.fetch("PORT", 3000)

# Specifies the `environment` that Puma will run in.
#
environment ENV.fetch("RAILS_ENV") { "development" }

# Specifies the `pidfile` that Puma will use.
pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" }

# Specifies the number of `workers` to boot in clustered mode.
# Workers are forked web server processes. If using threads and workers together
# the concurrency of the application would be max `threads` * `workers`.
# Workers do not work on JRuby or Windows (both of which do not support
# processes).
#
# workers ENV.fetch("WEB_CONCURRENCY") { 2 }

# Use the `preload_app!` method when specifying a `workers` number.
# This directive tells Puma to first boot the application and load code
# before forking the application. This takes advantage of Copy On Write
# process behavior so workers use less memory.
#
# preload_app!

# Allow puma to be restarted by `rails restart` command.
plugin :tmp_restart
require "govuk_app_config/govuk_puma"
GovukPuma.configure_rails(self)

0 comments on commit c0b906f

Please sign in to comment.