From 81731c3a1462c929a375939ef908c86b97ed3ef4 Mon Sep 17 00:00:00 2001 From: Rene Date: Thu, 18 Sep 2025 22:13:14 +0200 Subject: [PATCH] redo merge --- Dockerfile | 29 ++---- config/environments/development.rb | 153 +++++++++++------------------ docker-compose.yml | 1 - 3 files changed, 66 insertions(+), 117 deletions(-) diff --git a/Dockerfile b/Dockerfile index ad6c0c3..27dfdf4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,32 +1,19 @@ FROM ruby:2.7.8 +# Point to Debian archive repos instead of the dead ones + RUN apt-get update -qq && \ curl -sL https://deb.nodesource.com/setup_16.x | bash - && \ - apt-get install -y build-essential libpq-dev nodejs curl gnupg && \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ - echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ - apt-get update -qq && apt-get install -y yarn && \ + apt-get install -y build-essential libpq-dev nodejs && \ useradd --user-group --create-home --shell /bin/false app ENV HOME=/home/app -WORKDIR $HOME/wedding - -# Copy only Gemfiles first to leverage Docker caching -COPY --chown=app:app Gemfile Gemfile.lock ./ -RUN bundle install - -# Copy rest of the app -COPY --chown=app:app . ./ - -# Make absolutely sure everything belongs to app -RUN chown -R app:app $HOME/wedding - USER app -# Install JS dependencies -RUN yarn install --check-files - -# Precompile Rails assets (SCSS -> CSS, JS, images) -RUN bundle exec rake assets:precompile +COPY --chown=app:app Gemfile Gemfile.lock $HOME/wedding/ +WORKDIR $HOME/wedding +RUN bundle CMD ["bundle", "exec", "rails", "server", "-b", "0.0.0.0"] + +COPY --chown=app:app . $HOME/wedding/ diff --git a/config/environments/development.rb b/config/environments/development.rb index f6e360a..1dbf0b8 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -3,53 +3,46 @@ Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. - # Code is not reloaded between requests. - config.cache_classes = true - - - #Rails.application.routes.default_url_options[:host] = ENV.fetch("APP_HOST", "0.0.0.0") - #Rails.application.routes.default_url_options[:port] = ENV.fetch("APP_PORT", 3000) + # In the development environment your application's code is reloaded on + # every request. This slows down response time but is perfect for development + # since you don't have to restart the web server when you make code changes. + config.cache_classes = false + Rails.application.routes.default_url_options[:host] = ENV.fetch("APP_HOST", "0.0.0.0") + Rails.application.routes.default_url_options[:port] = ENV.fetch("APP_PORT", 3000) # Force Rails to generate URLs with your hostname instead of localhost - #Rails.application.routes.default_url_options = { - # host: ENV.fetch("APP_HOST", ENV['CANONICAL_HOST'], - # port: ENV.fetch("APP_PORT", 3000) - #} + Rails.application.routes.default_url_options = { + host: ENV.fetch("APP_HOST", "beere5"), + port: ENV.fetch("APP_PORT", 3000) + } - # Eager load code on boot. This eager loads most of Rails and - # your application in memory, allowing both threaded web servers - # and those relying on copy on write to perform better. - # Rake tasks automatically ignore this option for performance. - config.eager_load = true + # Force Rails to generate URLs with your hostname instead of localhost + Rails.application.routes.default_url_options = { + host: ENV.fetch("APP_HOST", "wedding.linepe.de"), + port: ENV.fetch("APP_PORT", 3000) + } - # Full error reports are disabled and caching is turned on. - config.consider_all_requests_local = false - config.action_controller.perform_caching = true + # Do not eager load code on boot. + config.eager_load = false - # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"] - # or in config/master.key. This key is used to decrypt credentials (and other encrypted files). - # config.require_master_key = true + # Show full error reports. + config.consider_all_requests_local = true - # Disable serving static files from the `/public` folder by default since - # Apache or NGINX already handles this. - config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? + # Enable/disable caching. By default caching is disabled. + # Run rails dev:cache to toggle caching. + if Rails.root.join('tmp', 'caching-dev.txt').exist? + config.action_controller.perform_caching = true - # Compress JavaScripts and CSS. - config.assets.js_compressor = :uglifier - # config.assets.css_compressor = :sass + config.cache_store = :memory_store + config.public_file_server.headers = { + 'Cache-Control' => "public, max-age=#{2.days.to_i}" + } + else + config.action_controller.perform_caching = false - # Do not fallback to assets pipeline if a precompiled asset is missed. - config.assets.compile = false - - # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb - - # Enable serving of images, stylesheets, and JavaScripts from an asset server. - # config.action_controller.asset_host = 'http://assets.example.com' - - # Specifies the header that your server uses for sending files. - # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache - # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX + config.cache_store = :null_store + end # Use a real queuing backend for Active Job (and separate queues per environment) # config.active_job.queue_adapter = :resque @@ -81,66 +74,36 @@ Rails.application.configure do # Store uploaded files on the local file system (see config/storage.yml for options) config.active_storage.service = :local - # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. - # config.force_ssl = true + # Don't care if the mailer can't send. + config.action_mailer.raise_delivery_errors = false - # Use the lowest log level to ensure availability of diagnostic information - # when problems arise. - config.log_level = :debug - - # Prepend all log lines with the following tags. - config.log_tags = [:request_id] - - # Use a different cache store in production. - # config.cache_store = :mem_cache_store - - # Use a real queuing backend for Active Job (and separate queues per environment) - # config.active_job.queue_adapter = :resque - # config.active_job.queue_name_prefix = "wedding_#{Rails.env}" - config.read_encrypted_secrets = true - config.action_mailer.perform_deliveries = true - config.action_mailer.delivery_method = :smtp config.action_mailer.perform_caching = false - # Ignore bad email addresses and do not raise email delivery errors. - # Set this to true and configure the email server for immediate delivery to raise delivery errors. - config.action_mailer.raise_delivery_errors = true + # Print deprecation notices to the Rails logger. + config.active_support.deprecation = :log + + # Raise an error on page load if there are pending migrations. + config.active_record.migration_error = :page_load + + # Highlight code that triggered database queries in logs. + config.active_record.verbose_query_logs = true + + # Debug mode disables concatenation and preprocessing of assets. + # This option may cause significant delays in view rendering with a large + # number of complex assets. + config.assets.debug = true + + # Suppress logger output for asset requests. + config.assets.quiet = true + + # Raises error for missing translations + # config.action_view.raise_on_missing_translations = true + + # Use an evented file watcher to asynchronously detect changes in source code, + # routes, locales, etc. This feature depends on the listen gem. + config.file_watcher = ActiveSupport::EventedFileUpdateChecker config.action_mailer.default_url_options = { - host: ENV['CANONICAL_HOST'], - protocol: ENV['CANONICAL_HOST_PROTOCOL'] || 'https' + host: ENV['CANONICAL_HOST'], port: 3000 } - - config.action_mailer.smtp_settings = { - address: ENV['SMTP_ADDRESS'], - port: (ENV['SMTP_PORT'] || 587).to_i, - domain: ENV['SMTP_DOMAIN'], - user_name: ENV['SMTP_USER_NAME'], - password: ENV['SMTP_PASSWORD'], - authentication: 'plain', - enable_starttls_auto: true - } - - # Enable locale fallbacks for I18n (makes lookups for any locale fall back to - # the I18n.default_locale when a translation cannot be found). - config.i18n.fallbacks = true - - # Send deprecation notices to registered listeners. - config.active_support.deprecation = :notify - - # Use default logging formatter so that PID and timestamp are not suppressed. - config.log_formatter = ::Logger::Formatter.new - - # Use a different logger for distributed setups. - # require 'syslog/logger' - # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name') - - if ENV['RAILS_LOG_TO_STDOUT'].present? - logger = ActiveSupport::Logger.new(STDOUT) - logger.formatter = config.log_formatter - config.logger = ActiveSupport::TaggedLogging.new(logger) - end - - # Do not dump schema after migrations. - config.active_record.dump_schema_after_migration = false -end +end \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index a8cc49e..27830b8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,7 +10,6 @@ services: web: environment: - SECRET_KEY_BASE: "b0d9de4a4e2d8568b" CANONICAL_URL: beere5:3033, wedding.linepe.de build: . ports: