在Capistrano部署脚本中使用Rails环境变量,可以按照以下步骤进行:
.env
的文件,并在其中添加环境变量,例如:RAILS_ENV=production
SECRET_KEY_BASE=your_secret_key_base
DATABASE_URL=postgres://username:password@localhost/dbname
config/deploy.rb
文件中添加以下代码,以在部署过程中加载.env
文件中的环境变量:# 加载.env文件中的环境变量
require 'dotenv'
Dotenv.load
# 设置Capistrano的环境变量
set :rails_env, ENV['RAILS_ENV']
set :secret_key_base, ENV['SECRET_KEY_BASE']
set :database_url, ENV['DATABASE_URL']
config/deploy/production.rb
文件中添加以下代码,以在部署到生产环境时使用上述环境变量:# 设置生产环境的环境变量
set :stage, :production
set :rails_env, :production
set :secret_key_base, ENV['SECRET_KEY_BASE']
set :database_url, ENV['DATABASE_URL']
config/deploy.rb
文件中,确保已经添加了以下代码,以便在部署过程中设置Rails环境变量:# 设置Rails环境变量
set :default_env, {
'RAILS_ENV' => fetch(:rails_env),
'SECRET_KEY_BASE' => fetch(:secret_key_base),
'DATABASE_URL' => fetch(:database_url)
}
config/deploy.rb
文件中添加以下代码,以在部署过程中设置Rails环境变量:# 设置Rails环境变量
namespace :deploy do
task :set_rails_env do
on roles(:app) do
execute :export, "RAILS_ENV=#{fetch(:rails_env)}"
execute :export, "SECRET_KEY_BASE=#{fetch(:secret_key_base)}"
execute :export, "DATABASE_URL=#{fetch(:database_url)}"
end
end
end
before 'deploy:updated', 'deploy:set_rails_env'
这样,在Capistrano部署脚本中就可以使用Rails环境变量了。
领取专属 10元无门槛券
手把手带您无忧上云