AWS Elastic Beanstalk Dev环境Rails.env显示production问题求助
解决Elastic Beanstalk Dev环境Rails.env显示production的问题
嘿,这个坑我之前踩过!AWS Elastic Beanstalk默认会把所有部署的Rails应用都强制设为production环境,不管你命名的是Dev还是Prod环境,所以得手动给你的Dev-env指定Rails环境变量才行。下面是具体的解决方法:
方法1:通过AWS控制台配置环境变量
这是最直观的方式:
- 登录AWS控制台,找到Elastic Beanstalk服务,进入你的Dev-env环境
- 点击左侧导航栏的「配置」,找到「软件」配置模块,点击「编辑」
- 在「环境属性」区域,添加一个新的键值对:
- 键:
RAILS_ENV - 值:
development
- 键:
- 保存配置,EB会自动重启你的Dev环境,生效后再检查
Rails.env就会显示development,日志路径也会变成/var/app/current/log/development.log了
方法2:通过EB CLI配置
如果你习惯用命令行操作,可以这么弄:
方式A:直接设置环境变量
执行这条命令(替换成你的环境名):
eb setenv RAILS_ENV=development --environment Dev-env
执行后EB会自动更新环境配置并重启应用。
方式B:编辑.elasticbeanstalk/config.yml
修改你现有的配置文件,给Dev-env添加环境变量配置:
branch-defaults: develop: environment: Dev-env master: environment: Prod-env environment-defaults: Dev-env: branch: null repository: null env: RAILS_ENV: development Prod-env: branch: null repository: null global: ... # 保留你原来的global配置
然后执行部署命令:
eb deploy Dev-env
额外注意事项
- 如果你有
database.yml或者其他依赖环境的配置文件,要确保development环境的配置和你的Dev-env资源匹配(比如数据库连接信息) - 配置生效后,可以通过
eb ssh Dev-env进入实例,执行echo $RAILS_ENV或者在Rails控制台里输入Rails.env来验证是否设置成功
内容的提问来源于stack exchange,提问作者hood
相关产品推荐
相关产品推荐

