gpt4 book ai didi

ruby-on-rails-4 - 在 capistrano 3 自定义任务中使用 dotenv 变量

转载 作者:行者123 更新时间:2023-12-04 10:38:55 24 4
gpt4 key购买 nike

我正在尝试创建 capistrano 任务,该任务将显示 .env 文件中由 dotenv 设置的变量

任务:

namespace :test do
task :env do
on roles(:app) do
info ENV['TEST_ENV'].inspect
end
end
end

.env 文件:
TEST_ENV='confusing'

运行任务:
$ cap staging test:env
DEBUG [37c8a9e6] Running /usr/bin/env [ ! -d ~/.rbenv/versions/2.0.0-p353 ] on x.x.x.x
DEBUG [37c8a9e6] Command: [ ! -d ~/.rbenv/versions/2.0.0-p353 ]
DEBUG [37c8a9e6] Finished in 14.776 seconds with exit status 1 (failed).
INFO nil

这是在一个有效的 capified rails 4 应用程序下(我可以运行 cap staging deploy 就好了)

谁能告诉我我错过了什么?

编辑:

因为它可能不够清楚,我真正需要的是在我的本地机器上访问 .env ,实际情况:

I store a secret api key inside .env and it will be used to notify external api service after deploy, the api key itself isn't supposed to be stored anywhere else and is app exclusive (each app have its own key) so it's not a good idea to store it permanently in local env

最佳答案

我找到了,我需要使用Dotenv.load在使用 ENV 之前并添加 require 'dotenv'在 Capfile 中

它实际上记录在 dotenv 自述文件中:https://github.com/bkeepers/dotenv#sinatra-or-plain-ol-ruby

应该更仔细地阅读它..

关于ruby-on-rails-4 - 在 capistrano 3 自定义任务中使用 dotenv 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21309669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com