Ich versuche Capistrano Aufgabe zu erstellen, die eine Variable von dotenv aus .env Dateimit dotenv Variablen innerhalb Capistrano 3 benutzerdefinierte Aufgabe
die Aufgabe zeigen:
namespace :test do
task :env do
on roles(:app) do
info ENV['TEST_ENV'].inspect
end
end
end
.env Datei:
TEST_ENV='confusing'
läuft die Aufgabe:
$ 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
dies ist unter einer funktionierenden capified rails 4 app (ich kann cap staging bereitstellen, einfach gut)
kann mir jeder sagen, was fehlt mir bitte?
edit:
da nicht klar genug sein könnte, was ich brauche eigentlich ist .env in meinem lokalen Rechner zugreifen kann, der tatsächliche Fall:
Ich speichere einen geheimen api Schlüssel innen. env und es wird verwendet, um externen API-Dienst nach der Bereitstellung zu benachrichtigen, der API-Schlüssel selbst soll nirgendwo anders gespeichert werden und ist App-exklusiv (jede App hat ihren eigenen Schlüssel), so ist es keine gute Idee, es dauerhaft zu speichern lokales env
Dies funktionierte für mich durch Hinzufügen zu meiner config/application.rb kurz vor Bundler.require (..). Ich musste auch die .env- und .env.staging-Dateien manuell zum shared/-Verzeichnis auf dem Produktionsserver hinzufügen, um capistrano-Fehler zu umgehen. – earth2jason