Come accedi a Rails_env dal comando Cap Deploy?
-
21-12-2019 - |
Domanda
In deploy.rb
, credo che :rails_env
sia in genere impostato da require 'capistrano/rails'
trovato nel Capfile
.Sto usando rotaie, ma non utilizzando la pipeline patrimoniale integrata e quindi, non utilizzare Capistrano / Rails ed era nella situazione di dover impostare manualmente :rails_env
in deploy.rb
durante la commutazione tra staging e distribuzione di produzione.Questo sembrava piuttosto sciocco come l'ambiente è sempre incluso durante l'esecuzione di cap staging deploy
o cap production deploy
.Sto postando questa domanda, come sembra che potrebbe essere un punto di dolore abbastanza comune con una soluzione banale, ma dopo molto googling, sono venuto a mani vuote.Pertanto scavò nel codice sorgente Capistrano 3.1.0
per capire come accedere alla variabile dello stadio inserita sulla riga di comando e seguirà una breve risposta che fa un po 'di spiegazione.
Soluzione
La risposta semplice è aggiungere la seguente riga vicino alla parte superiore del deploy.rb
:
.Set: Rails_env, recupero (: stage)
La variabile :stage
viene impostata in capistrano/setup
che è richiesta nel Capfile
.Questo script crea attività di rastrello per ogni fase definita in config/deploy
.All'interno della definizione per l'attività di rastrello troverai quanto segue: set(:stage, stage.to_sym)
che è la variabile Stage / Rails_Env dal tuo cap staging deploy
o il comando cap production deploy
.