diff --git a/Dockerfile b/Dockerfile index 8c7a55f98..31f9c81ed 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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 @@ -17,4 +16,4 @@ ADD Gemfile* $APP_HOME/ RUN bundle install ADD . $APP_HOME -CMD foreman run web +CMD bundle exec puma diff --git a/Gemfile.lock b/Gemfile.lock index f9a4b5486..29f7f31eb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -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) @@ -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) @@ -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 diff --git a/config/puma.rb b/config/puma.rb index fa40ee6f5..d08b16a62 100644 --- a/config/puma.rb +++ b/config/puma.rb @@ -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)