尽管一切看起来都是正确的,但 Passenger 仍在生产中运行?
Passenger Still Runs in Production Despite Everything Seeming to Be Correct?
我在 Phusion 提供的 Docker 容器 (https://github.com/phusion/passenger-docker) 中 运行ning Passenger,并使用以下方法将我的 Rails 环境设置为开发设置以下:
docker run -rm -p 80:80 -e RAILS_ENV=development <image_name>
但是,Passenger 仅 运行 处于生产模式。什么会导致这种情况?
原来问题是这个容器中的 Passenger 运行 不监听 RAILS_ENV 的环境变量,它只监听 PASSENGER_APP_ENV。它使用该环境变量来调整 nginx.conf 文件。您可以在此文件中看到这种情况 (https://github.com/phusion/passenger-docker/blob/master/image/config/30_presetup_nginx.sh)
设置两个变量解决了问题(RAILS_ENV 仍然被其他工具使用)。
docker run -rm -p 80:80 -e RAILS_ENV=development -e PASSENGER_APP_ENV=development <image_name>
我在 Phusion 提供的 Docker 容器 (https://github.com/phusion/passenger-docker) 中 运行ning Passenger,并使用以下方法将我的 Rails 环境设置为开发设置以下:
docker run -rm -p 80:80 -e RAILS_ENV=development <image_name>
但是,Passenger 仅 运行 处于生产模式。什么会导致这种情况?
原来问题是这个容器中的 Passenger 运行 不监听 RAILS_ENV 的环境变量,它只监听 PASSENGER_APP_ENV。它使用该环境变量来调整 nginx.conf 文件。您可以在此文件中看到这种情况 (https://github.com/phusion/passenger-docker/blob/master/image/config/30_presetup_nginx.sh)
设置两个变量解决了问题(RAILS_ENV 仍然被其他工具使用)。
docker run -rm -p 80:80 -e RAILS_ENV=development -e PASSENGER_APP_ENV=development <image_name>