capistrano设置和获取环境变量从配置到耙

时间:2019-03-04 13:33:23

标签: ruby variables task capistrano 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

但是我遇到了这个错误:未定义的局部变量或方法'environment'

您是否知道原因? 我不能从rake文件访问rb文件中设置的环境变量吗?

非常感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

是因为您已将变量设置为:default_env,而是要求将其设置为:environment吗?

答案 1 :(得分:0)

感谢您的回答,我终于通过使用集合:environment, "preprodv1"而不是集合:default_env{ 'environment' => 'preprodv1' }并通过保留#{fetch(:environment)}来解决了这个问题,非常感谢您的帮助:)

答案 2 :(得分:0)

fetch(:default_env)['environment']