Rails部署环境的环境变量

如果你是头一次部署rails到生产环境,并且也是一个ruby newbie那一定会被rails配置文件中的ENV[“variable_name”]的写法搞得莫名其妙,最大得问题可能就是哪里来得这些变量?这篇文章就来说说这些环境变量的作用以及简单地使用方法

环境变量的作用

rails中环境变量与系统中环境变量一样,特定环境下才能访问到得变量,可以保护开发者敏感信息(密码,hash key之类),其次可以提高部署灵活性(依赖部分的路径定义)。

环境变量的配置和访问访问

可以直接通过ENV['variale_name']这种写法访问到,设置过的环境变量

配置通过.bashrc配置(.zshrc类似)

export ELASTICSEARCH_URL="xxxxxx"export DATABASE_PASSWORD="xxxxxx"

通过yaml文件配置新建yaml文件,在rails app启动的时候首先加载环境变量配置文件,从而达到覆盖追加原系统变量的目的新建ymal文件

#config/local_env.ymlELASTICSEARCH_URL: "xxxxxx"DATABASE_PASSWORD: "xxxxxx"

rails启动前加载静态yml文件

#config/application.rbconfig.before_configuration do  env_file = File.join(Rails.root, 'config', 'local_env.yml')  YAML.load(File.open(env_file)).each do |key, value|  ENV[key.to_s] = value  end if File.exists?(env_file)end

修改.gitignore

添加/config/local_env.yml 到.gitignore中,放置配置文件随代码一起泄露出去

除了上面的两个方法,还可以通过通过一个叫Figarogem来实现环境变量设置,而且可以针对不同开发环境进行设置,暂时还没有这么精细的需求用不到,详细可以跳到参考链接里看

参考

Rails 环境变量设置

很好的一篇文章,大部分参考了该文,推荐!

-完-

Rails部署环境的环境变量

相关文章:

你感兴趣的文章:

标签云: