Ruby on rails foreman未能加载环境变量

Ruby on rails foreman未能加载环境变量,ruby-on-rails,ruby,ruby-on-rails-4,foreman,Ruby On Rails,Ruby,Ruby On Rails 4,Foreman,我正在使用rails 4.0.0和ruby 2.0.0 当我使用foreman启动服务器时,一些环境变量无法加载。有些变量被加载了,这真的让我很烦 foreman start -e development.env 程序文件 web: bundle exec passenger start -p $PORT -e $RAILS_ENV worker: bundle exec rake jobs:work RAILS_ENV=$RAILS_ENV development.env文件 S3_BUC

我正在使用rails 4.0.0和ruby 2.0.0

当我使用foreman启动服务器时,一些环境变量无法加载。有些变量被加载了,这真的让我很烦

foreman start -e development.env
程序文件

web: bundle exec passenger start -p $PORT -e $RAILS_ENV
worker: bundle exec rake jobs:work RAILS_ENV=$RAILS_ENV
development.env文件

S3_BUCKET=bucketname
AWS_ACCESS_KEY_ID=accesskey
AWS_SECRET_ACCESS_KEY=secretaccesskey
RAILS_ENV=development
PORT=3000
在application.rb文件中,我添加了一些日志记录来帮助调试这个问题

puts "PORT is #{ENV["PORT"].inspect}"
puts "RAILS_ENV is #{ENV["RAILS_ENV"].inspect}"
puts "S3_BUCKET is #{ENV["S3_BUCKET"].inspect}"
puts "AWS_ACCESS_KEY_ID is #{ENV["AWS_ACCESS_KEY_ID"].inspect}"
puts "AWS_SECRET_ACCESS_KEY is #{ENV["AWS_SECRET_ACCESS_KEY"].inspect}"
一旦启动服务器,这就是日志代码的输出

23:34:52 worker.1 | PORT is nil
23:34:52 worker.1 | RAILS_ENV is "development"
23:34:52 worker.1 | S3_BUCKET is nil
23:34:52 worker.1 | AWS_ACCESS_KEY_ID is nil
23:34:52 worker.1 | AWS_SECRET_ACCESS_KEY is nil
为什么?为什么-(

当我用foreman加载rails控制台时,它成功地加载了变量

foreman run -e development.env rails c

尝试修改你的
development.env

export S3_BUCKET=bucketname
export AWS_ACCESS_KEY_ID=accesskey
export AWS_SECRET_ACCESS_KEY=secretaccesskey
export RAILS_ENV=development
export PORT=3000
然后在终点站

$ source /path/to/development.env
$ foreman start
先进的
您可以使用来管理某些环境变量,而不会污染系统环境。尽管它无法管理服务器启动所需的环境变量,如
端口
请尝试修改
开发.env

export S3_BUCKET=bucketname
export AWS_ACCESS_KEY_ID=accesskey
export AWS_SECRET_ACCESS_KEY=secretaccesskey
export RAILS_ENV=development
export PORT=3000
然后在终点站

$ source /path/to/development.env
$ foreman start
先进的
您可以使用来管理一些环境变量,而不会污染系统环境。虽然它无法管理服务器启动所需的环境变量,如
端口

您显示的日志输出来自辅助进程,但web进程是否可以像rails控制台一样看到环境变量?我可以不要认为使用了development.env中的任何值。Rails本身会将
Rails\u env
环境变量设置为“development”(如果尚未设置)。您可以通过尝试将
Rails\u env
设置为其他值来验证这一点。您显示的日志输出来自工作进程,web进程是否看到env环境变量,就像rails控制台一样?我认为没有使用development.env中的任何值。rails本身将
rails\u env
环境变量设置为“development”(如果尚未设置)。您可以通过尝试将
rails\u env
设置为其他值来验证这一点。