mil*_*ner 4 ruby-on-rails amazon-web-services puma amazon-elastic-beanstalk
当前用于Ruby + Puma的Beanstalk解决方案堆栈使用处的配置文件,/opt/elasticbeanstalk/support/conf/pumaconf.rb并忽略config/puma.rbRails应用程序目录中的内部。
我可以用一个自定义的通孔覆盖上面的文件,.ebextensions但很犹豫,因为我想避免损坏,以防PID或(更重要的是-)unix套接字文件的路径在即将推出的解决方案堆栈版本中发生更改。
在Beanstalk上自定义Puma配置的最佳实践是什么?
在 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上的文档。
我们使用Ruby + Passenger,但这听起来与您的情况足够相似。我们需要自定义存储在的nginx配置文件/opt/elasticbeanstalk/support/conf/nginx_config.erb,因此我们通过.ebextensions和进行操作sed。
这是一个使您入门的示例:
.ebextensions / 01-edit-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\""
Run Code Online (Sandbox Code Playgroud)
这将创建配置文件的备份副本(由于存在-n标记,因此不会覆盖该文件),然后在“ string_to_insert_text_after”行之后插入“ text_to_be_inserted”行。您可以通过管道将多个sed命令一起插入多行。