我想使用heroku_san
将多个环境部署到heroku。我正在使用dragonfly进行图像处理,使用S3进行存储。通常,您可以直接使用heroku config:add S3_KEY=… S3_SECRET=…
为存储添加密钥和密钥。
所以我已将这些详细信息添加到heroku.yml
使用的heroku_san
文件中:
staging:
app: app-staging
config: &default
BUNDLE_WITHOUT: "development:test"
S3_KEY: XXXXXXXXXXXXXXXXXX
S3_SECRET: XXXXXXXXXXXXXXXXXX
S3_BUCKET: app-staging
但在部署时我仍然得到:
rake aborted!
ENV variable 'S3_KEY' needs to be set - use
heroku config:add S3_KEY=XXXXXXXXX
我在这里缺少什么?有没有更好的方法将此信息存储在YML文件中?
答案 0 :(得分:2)
无需手动运行heroku config:add
。只需运行heroku_san的配置任务:
$ rake all heroku:config
每当更新heroku.yml文件时重复此步骤。
我也对此感到困惑,因为heroku_san的文档很奇怪,但该选项确实出现在rake任务列表中:
$ rake -T
并在heroku_san代码中:https://github.com/fastestforward/heroku_san/blob/master/lib/heroku_san/tasks.rb
答案 1 :(得分:1)
一个简单的解决方案/解决方法:
heroku config:add S3_KEY=XXX S3_SECRET=XXX --app app-staging
有更好的想法吗?
答案 2 :(得分:0)
我认为您需要运行命令rake all heroku:rack_env
。然后,此命令将根据您的heroku_san YAML配置为您设置环境配置。