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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top