2013-01-13 17 views
18

qual è il "modo foreman" per comportarsi in modo diverso nella produzione vs sviluppo ? Quello che vogliamo è che Foreman inizi a creare un mucchio di cose in dev, tuttavia nella produzione di heroku non ne abbiamo bisogno per avviare (per esempio) solr.sviluppo foreman vs produzione (rotaie)

risposta

3

Foreman utilizza gli argomenti per utilizzare un file diverso (-d) e gli argomenti per specificare cosa eseguire. Supporta anche un file .foreman che consente a quegli argomenti di diventare predefiniti. Vedi http://ddollar.github.com/foreman/ per ulteriori informazioni

22

Seguo la convenzione;

  • Procfile definisce tutti processi
  • .foreman fissati variabili caposquadra specifici

Sviluppo:

  • .env variabili d'ambiente set per ogni sviluppatore
  • .env.example s default ETS per lo sviluppo
  • foreman start avvia tutti i processi

Produzione:

  • heroku config variabili d'ambiente set
  • heroku ps:scale accende o si spegne a seconda di quale i processi sono necessari per la produzione

Ecco un esempio da un progetto.

Procfile:

web: bundle exec unicorn_rails -p $PORT -c ./config/unicorn.rb 
worker: bundle exec rake jobs:work 
search: bundle exec rake sunspot:solr:run 

.env.example:

# default S3 bucket 
S3_KEY=keykeykeykeykeykey 
S3_SECRET=secretsecretsecret 
S3_BUCKET=myapp-development 

.env

# developer's private S3 bucket 
S3_KEY=mememememememememe 
S3_SECRET=mysecretmysecret 
S3_BUCKET=myapp-development 

.foreman:

# development port is 3000 
port: 3000 
0

Ho usato prima lo specifico ambiente Procfile s, che è piuttosto semplice e funziona bene.

In pratica dovete Procfile.development, Procfile.production, ecc In ogni è possibile personalizzare le proc si desidera avviare, quindi eseguirli via foreman in questo modo:

foreman start -f Procfile.development 

Un altro approccio è quello di fare riferimento gli script nella vostra Procfile, e all'interno di ogni script avvia il processo appropriato in base all'ambiente. The creator of Foreman does this e dispone di an example from his Anvil project your reference.

Problemi correlati