在Digital Ocean上部署Rails App并运行Cap Production部署时:初始我返回---> 01 ArgumentError:缺少“ secret_key_base”

时间:2019-05-27 03:23:05

标签: ruby-on-rails ruby

在Digital Ocean上部署Rails App并运行cap production deploy:initial时我会回来

  

01 ArgumentError:“生产”环境缺少secret_key_base,请使用rails credentials:edit设置此字符串

我认为我已经设置好了:

development:
  secret_key_base: <%= ENV["132efa1cdc31b591fa97e11450182f7ece21c9409451ea74e65974a9fad9e1d27846895afe0ffc4ee09d0d87912532a8d64e9a465e3cdf4455dee4ff3830"] %>
test:
  secret_key_base: <%= ENV["1113232efa1cdc31b591fa97e11450182f7ece21c9409451ea74e65974a9fad9e1d27846895afe0ffc4ee09d0d87912532a8d64e9a465e3cdf4455dee4ff3830"] %>
production:
  secret_key_base: <%= ENV["11173232efa1cdc31b591fa97e11450182f7ece21c9409451ea74e65974a9fad9e1d27846895afe0ffc4ee09d0d87912532a8d64e9a465e3cdf4455dee4ff3830"] %>

我正在通过ubuntu服务器一键使用数字海洋扶手

1 个答案:

答案 0 :(得分:1)

通常,您的secret_key_base将存储在一个环境变量中,但是不应将秘密密钥作为环境密钥的名称。 就您而言,这就是我所观察到的。

development:
  secret_key_base: <%= ENV["132efa1cdc31b591fa97e11450182f7ece21c9409451ea74e65974a9fad9e1d27846895afe0ffc4ee09d0d87912532a8d64e9a465e3cdf4455dee4ff3830"] %>

test:
  secret_key_base: <%= ENV["1113232efa1cdc31b591fa97e11450182f7ece21c9409451ea74e65974a9fad9e1d27846895afe0ffc4ee09d0d87912532a8d64e9a465e3cdf4455dee4ff3830"] %>

production:
  secret_key_base: <%= ENV["11173232efa1cdc31b591fa97e11450182f7ece21c9409451ea74e65974a9fad9e1d27846895afe0ffc4ee09d0d87912532a8d64e9a465e3cdf4455dee4ff3830"] %>

因此,这就是我的建议,而不是将您的秘密设置为env变量的键,您可能只想做类似的事情:

secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

然后,您想要在数字海洋实例中设置环境变量。

我以前没有使用Capistrano,但是请看https://capistranorb.com/documentation/getting-started/configuration/中的default_envCapistrano and environment variables

在您的情况下,我认为您可能想做一些类似的事情

set :default_env, { 
  'SECRET_KEY_BASE' => '11173232efa1cdc31b591fa97e11450182f7ece21c9409451ea74e65974a9fad9e1d27846895afe0ffc4ee09d0d87912532a8d64e9a465e3cdf4455dee4ff3830'
}

让我知道是否有帮助