我正在尝试在/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
但是我遇到了这个错误:未定义的局部变量或方法'environment'
您是否知道原因? 我不能从rake文件访问rb文件中设置的环境变量吗?
非常感谢您的帮助!
答案 0 :(得分:0)
是因为您已将变量设置为:default_env
,而是要求将其设置为:environment
吗?
答案 1 :(得分:0)
感谢您的回答,我终于通过使用集合:environment, "preprodv1"
而不是集合:default_env
,{ 'environment' => 'preprodv1' }
并通过保留#{fetch(:environment)}
来解决了这个问题,非常感谢您的帮助:)
答案 2 :(得分:0)
fetch(:default_env)['environment']