Ruby + Puma的当前Beanstalk解决方案堆栈使用/opt/elasticbeanstalk/support/conf/pumaconf.rb
处的配置文件,并忽略Rails应用程序目录中的config/puma.rb
。
我可以通过.ebextensions
使用自定义文件覆盖上面的文件,但我犹豫不决,因为我想避免破坏,以防PID路径或 - 更重要的是 - unix套接字文件在即将发布的解决方案堆栈中发生变化版本
在Beanstalk上自定义Puma配置的最佳做法是什么?
答案 0 :(得分:3)
我们使用Ruby + Passenger,但听起来与您的情况相似。我们需要自定义存储在/opt/elasticbeanstalk/support/conf/nginx_config.erb
的nginx配置文件,因此我们通过.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
标志),然后在“string_to_insert_text_after”行之后插入“text_to_be_inserted”行。您可以将多个sed
命令组合在一起以插入多行。
答案 1 :(得分:0)
在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上的文档。