capistrano 设置并从配置中获取环境变量到 rake
capistrano set and get environment variables from config to rake
我正在尝试在 /config/deploy/staging.rb 中定义一个环境变量,例如:
set :default_env, {
'environment' => 'preprodv1'
}
然后我试图在我的文件 /lib/capistrano/tasks/build.rake 中访问这个变量:
desc "Builds the admin front-end"
task :build_admin_front do
on roles (:all) do |host|
within "#{release_path}" do
execute "cd #{release_path}/front_admin && npm install && npm run-script build --env=#{fetch(:environment)}"
end
end
end
end
但我得到了这个错误:未定义的局部变量或方法“环境”
请问您知道原因吗?
我不能从我的 rake 文件访问我在 rb 文件中设置的环境变量吗?
非常感谢您的帮助!
是否因为您将变量设置为 :default_env
,但您要求它是 :environment
?
感谢您的回答,我终于通过使用 set :environment, "preprodv1"
而不是 set :default_env
、{ 'environment' => 'preprodv1' }
并保留 #{fetch(:environment)}
解决了这个问题,非常感谢你的帮助:)
fetch(:default_env)['environment']
我正在尝试在 /config/deploy/staging.rb 中定义一个环境变量,例如:
set :default_env, {
'environment' => 'preprodv1'
}
然后我试图在我的文件 /lib/capistrano/tasks/build.rake 中访问这个变量:
desc "Builds the admin front-end"
task :build_admin_front do
on roles (:all) do |host|
within "#{release_path}" do
execute "cd #{release_path}/front_admin && npm install && npm run-script build --env=#{fetch(:environment)}"
end
end
end
end
但我得到了这个错误:未定义的局部变量或方法“环境”
请问您知道原因吗? 我不能从我的 rake 文件访问我在 rb 文件中设置的环境变量吗?
非常感谢您的帮助!
是否因为您将变量设置为 :default_env
,但您要求它是 :environment
?
感谢您的回答,我终于通过使用 set :environment, "preprodv1"
而不是 set :default_env
、{ 'environment' => 'preprodv1' }
并保留 #{fetch(:environment)}
解决了这个问题,非常感谢你的帮助:)
fetch(:default_env)['environment']