Question

Je voudrais être en mesure de pousser le code à dev.myapp.com pour tester et ensuite à www.myapp.com pour la production. Est-ce possible avec Heroku?

Était-ce utile?

La solution

Votre interface Heroku est essentiellement une branche Git. Le joyau Heroku fait un peu de travail à travers leur API, mais dans votre dépôt Git, il est juste une nouvelle branche à distance.

heroku create yourapp # production
git br -D heroku # delete the default branch

heroku create staging-yourapp # staging
git br -D heroku # delete the default branch

Une fois que vous configurez plusieurs applications sur Heroku, vous devriez être en mesure de configurer votre dépôt Git comme ceci:

git remote add staging git@heroku.com:staging-yourapp.git
git push origin staging

git remote add production git@heroku.com:yourapp.git
git push origin production

Je travaille habituellement dans une branche « travail », et utiliser Github pour mon maître.

En supposant que ce soit le cas pour vous, votre flux de travail de déploiement chercherais probablement quelque chose comme:

git co -b working
# do some work

# push to github:
git co master
git merge working
git push

# push to staging:
git co staging
git merge master
git push origin staging

# push to production
git co production
git merge master
git push origin production

Autres conseils

Ceci explique tout ce que vous devez savoir si vous êtes un débutant comme moi: http://devcenter.heroku.com/articles / multiple-environnements

Un élément clé de la question initiale est de relier l'application de la mise en scène d'un sous-domaine (dev.myapp.com) de l'application principale (www.myapp.com). Cela n'a pas été abordée dans aucune des réponses.

Étape 1: Configurer les versions de production ( 'monappli') et la mise en scène ( 'mise en scène-myapp') de votre application comme cela est indiqué dans la réponse par Luc Bayes

Étape 2: Dans votre système de gestion de domaine (par exemple GoDaddy):

Create a CNAME record:  dev.myapp.com 
that points to:   proxy.heroku.com

Étape 3: configurer Heroku pour acheminer dev.myapp.com de stadification-monapp:

heroku domains:add dev.myapp.com --app staging-myapp

Après l'enregistrement CNAME a eu le temps de se propager, vous serez en mesure d'exécuter votre application à la mise en scène dev.myapp.com.

Vous devriez vérifier heroku_san

Il fait un très bon travail avec la jonglerie des environnements sur Heroku.

Les choses sont plus faciles maintenant. Voici comment vous le faites ...

Créer une application pour chaque environnement

$ heroku create myapp --remote production
$ heroku create myapp-staging --remote staging

Ceci crée le nom repo à distance pour chaque application, que vous pouvez voir dans .git/config.

Vous pouvez maintenant utiliser le - application ou - à distance des commutateurs pour cibler une application particulière:

$ heroku info --app myapp-staging
$ heroku info --remote staging

Set environnements Rails

Pour Rails applications, Heroku à l'environnement "production" . Si vous voulez que votre application de mise en scène pour exécuter dans un environnement de mise en scène, créer l'environnement dans votre projet et définir le correspondant RAILS_ENV et RAKE_ENV variables d'environnement sur l'application:

$ heroku config:set RACK_ENV=staging RAILS_ENV=staging --remote staging

Configurer les environnements

Si vous avez d'autres variables de configuration que vous aurez besoin de les passer pour chaque environnement ainsi.

$ heroku config:set AWS_KEY=abc --remote staging
$ heroku config:set AWD_SECRET=123 --remote staging
...etc

C'est une douleur énorme si petit bijou si je viens d'utiliser mon snappconfig et exécuter

$ rake heroku:config:load[myapp-staging]

pour charger les fichiers de configuration YAML de mon projet dans Heroku.

Déploiement

Maintenant, vous poussez juste Heroku comme ceci:

$ git push staging master
$ git push production master

et la migration comme ceci:

$ heroku run rake db:migrate --remote staging
$ heroku run rake db:migrate --remote production

(Voir Gestion des environnements multiples pour une application |. Heroku Dev Center pour plus d'informations et les raccourcis)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top