在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服务器一键使用数字海洋扶手
答案 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_env
和Capistrano and environment variables
在您的情况下,我认为您可能想做一些类似的事情
set :default_env, {
'SECRET_KEY_BASE' => '11173232efa1cdc31b591fa97e11450182f7ece21c9409451ea74e65974a9fad9e1d27846895afe0ffc4ee09d0d87912532a8d64e9a465e3cdf4455dee4ff3830'
}
让我知道是否有帮助