我正在寻找基于Heroku Labs:Dyno元数据插件(https://devcenter.heroku.com/articles/dyno-metadata)设置的任何可能值,使用缓存键将文件加载到我的rails缓存中。在slug构建过程中,我的rails应用程序是否可以访问由Heroku设置的ENV变量?
在那篇文章中,我正在寻找一个独特的标识符,可以在slug构建过程中尽早使用。
HEROKU_RELEASE_CREATED_AT: 2015-04-02T18:00:42Z HEROKU_RELEASE_VERSION: v42 HEROKU_SLUG_COMMIT: 2c3a0b24069af49b3de35b8e8c26765c1dba9ff0
这是三个是一些我感兴趣的(例如以上数据)。在我的资产预编译步骤中,我依赖于一个独特的值,我决定使用上述3中的任何一个值。这一步是在我的Rails应用程序运行之前完成的。
最初我尝试HEROKU_RELEASE_VERSION
但是我注意到它没有设置,直到slug构建过程完成,这意味着在我的资产预编译步骤中,它是nil
。
我然后尝试HEROKU_SLUG_COMMIT
以查看资产预编译之前是否已知此信息。它是否正确?从一些初始测试来看,它似乎工作正常(至少在资产预编译之前就已知),但是我想知道这些设置的正确顺序。
如果这不是ENV[]
内的早期值,那么更好的建议是什么?
======更新:
我一直在下面值的配置打转转:
HEROKU_RELEASE_CREATED_AT: 2015-04-02T18:00:42Z HEROKU_RELEASE_VERSION: v42 HEROKU_SLUG_COMMIT: 2c3a0b24069af49b3de35b8e8c26765c1dba9ff0
我注意到,建立资产,上述前值不要更改预构建,而是更改后构建。下面,我有下面的结果输出。如您所见,当前部署为2583508
,但在构建过程中ENV['HEROKU_SLUG_COMMIT']
返回8318914
,直到应用程序结束,然后ENV['HEROKU_SLUG_COMMIT']
更新为2583508
。
=== sample-app Releases - Current: v356
v356 Deploy 2583508 [email protected] 2017/04/26 20:05:51 -0400 (~ 40s ago)
v355 Deploy 8318914 [email protected] 2017/04/26 19:51:33 -0400 (~ 14m ago)
v354 Deploy c054f1e [email protected] 2017/04/26 19:40:42 -0400 (~ 25m ago)
BROWSER RESTRICTIONS SLUG COMMIT: 83189141e4e45643bf71d9aa78604e479ea210f1
有没有办法来唯一知道实际建立之前,在当前构建?也许不使用heroku实验室插件?