Elastic Beanstalk com Passageiro Independente: configuração de trabalho?

3

Estou tentando migrar um aplicativo de pé de feijão elástico da Puma para o Phusion Passenger. No entanto, o Passenger falha na inicialização com o erro:

  /opt/elasticbeanstalk/support/conf/nginx_config.erb:48:in 'block in write_nginx_config_file': undefined local variable or method 'location_config_filename' for #<PhusionPassenger::Standalone::StartCommand:0x007f1eb35d06f0> (NameError)
    from /opt/rubies/ruby-2.2.2/lib/ruby/2.2.0/erb.rb:863:in 'eval'
    from /opt/rubies/ruby-2.2.2/lib/ruby/2.2.0/erb.rb:863:in 'result'
    from /opt/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/gems/passenger-5.0.15/lib/phusion_passenger/standalone/start_command/nginx_engine.rb:120:in 'block in write_nginx_config_file'

O nome da pilha da Amazon é:

64bit Amazon Linux 2015.03 v2.0.0 running Ruby 2.2 (Passenger Standalone)

O mesmo aplicativo é executado localmente e no Heroku usando o Passenger. (Também funciona bem com a Puma).

Existe um arquivo de configuração ou uma opção de configuração necessária que eu perdi?

(Estou usando o eb_deployer para implantação em azul e verde em vez do AWS Console - portanto, pode ser um padrão em algum lugar).

    
por MZB 18.08.2015 / 23:36

1 resposta

5

Eu estava tendo o mesmo problema e, após algumas pesquisas, descobri que a versão do passageiro Amazon estava sendo usada em

64bit Amazon Linux 2015.03 v2.0.0

é o Passenger 4.0.59 .

Se você tiver apenas gem "passenger" em seu gemfile sem especificar a versão que seu aplicativo está instalando v5.0 ou mais recente que está em conflito com a configuração do EBS. Quaisquer alterações feitas entre 4.0.59 e 5.0 parece estar atrapalhando o deploy, porque quando eu definir a versão no meu gemfile e reimplantada funcionou.

gem "passenger", '~> 4.0.59'

Depois de atualizar seu gemfile e enviar o código, encerre a instância para obter uma nova. Após a implantação, verifique o eb-activity.log para a linha

Using passenger 4.0.59

EDIT: Como Chris apontou abaixo, você não precisa incluir o passageiro em seu arquivo gem, uma vez que já está incluído. Isso impedirá o problema todos juntos, sem necessidade de se preocupar com versões.

gem "passenger ", group: :development
    
por 08.09.2015 / 23:57