Эластичный бобовый стебель: настройка конфигурации Puma
Текущий стек решений Beanstalk для Ruby + Puma использует файл конфигурации по адресу /opt/elasticbeanstalk/support/conf/pumaconf.rb
и игнорирует config/puma.rb
внутри каталога приложений Rails.
Я мог переопределить файл выше с помощью другого .ebextensions
но я колеблюсь, потому что я хотел бы избежать поломок в случае, если путь к PID или - что более важно - файлы сокетов Unix изменится в будущих версиях стека решений.
Как лучше всего настроить конфигурацию Puma на Beanstalk?
1 ответ
Мы используем Ruby+Passenger, но это звучит достаточно похоже на вашу ситуацию. Нам нужно настроить файл конфигурации nginx, хранящийся в /opt/elasticbeanstalk/support/conf/nginx_config.erb
так что мы делаем это через .ebextensions
а также sed
,
Вот пример для начала:
.ebextensions / 01-редактировать-nginx.config
container_commands:
01backup_config:
command: "cp -n /opt/elasticbeanstalk/support/conf/nginx_config.erb /opt/elasticbeanstalk/support/conf/nginx_config.erb.original"
02edit_config:
command: "sh -c \"sed '/string_to_insert_text_after/ i\
\ text_to_be_inserted;' /opt/elasticbeanstalk/support/conf/nginx_config.erb.original > /opt/elasticbeanstalk/support/conf/nginx_config.erb\""
Это создаст резервную копию файла конфигурации (без перезаписи, если он уже существует, благодаря -n
флаг), а затем вставьте строку "text_to_be_inserted" после строки "string_to_insert_text_after". Вы можете передать несколько sed
команды вместе, чтобы вставить несколько строк.
В Amazon Linux 2 вы можете использовать Procfile
для этого, например
web: puma -C /var/app/current/config/puma.rb
Дополнительную информацию см. В документации по адресу https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ruby-platform-procfile.html.