Pregunta

Me gustaría ser capaz de empujar a dev.myapp.com código para la prueba y luego a www.myapp.com para uso en producción. ¿Es esto posible con Heroku?

¿Fue útil?

Solución

Su interfaz para Heroku es esencialmente una rama Git. La gema Heroku hace algún trabajo a través de su API, pero dentro de su repositorio Git, es sólo una nueva rama remota.

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

Una vez que configure varias aplicaciones en Heroku, usted debe ser capaz de configurar su repositorio Git como esto:

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

Por lo general trabajo en una rama de 'trabajo', y el uso de Github para mi maestro.

Si se asume que es el caso para usted, su flujo de trabajo de despliegue, probablemente algo como:

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

Otros consejos

Esto explica todo lo que necesita saber si eres un novato como yo: http://devcenter.heroku.com/articles / múltiples-ambientes

Una parte clave de la pregunta original se trata de vincular la aplicación puesta en escena a un subdominio (dev.myapp.com) de la aplicación principal (www.myapp.com). Esto no se ha abordado en ninguna de las respuestas.

Paso 1: Configurar las dos versiones de la aplicación de producción ( 'miaplicacion') y estadificación ( 'estadificación-miaplicacion') como se indica en la respuesta de Luke Bayes

Paso 2: En su sistema de gestión de dominio (por ejemplo GoDaddy):

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

Paso 3: Configurar Heroku para enrutar dev.myapp.com a la estadificación-miaplicacion:

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

Después de que el registro CNAME ha tenido tiempo para propagar, usted será capaz de ejecutar su aplicación en la puesta en escena dev.myapp.com.

Se debe comprobar el heroku_san

Se hace un muy buen trabajo con entornos malabares en heroku.

Las cosas son más fáciles ahora. He aquí cómo lo haces ...

Crear una aplicación para cada entorno

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

Esto creará llamado repositorios remotos para cada aplicación, que se puede ver en .git/config.

Ahora puede utilizar el - aplicación o - remotos interruptores para apuntar a una aplicación en particular:

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

entornos Set Rails

Para aplicaciones Rails, Heroku a la "producción" entorno . Si desea que su aplicación puesta en escena para funcionar en un entorno de ensayo, crear el ambiente en su proyecto y establecer el correspondiente RAILS_ENV y RAKE_ENV variables de entorno en la aplicación:

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

Configurar entornos

Si usted tiene otras variables de configuración que tendrá que pasar en cada medio ambiente.

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

Esto es un dolor enorme, aunque por lo que sólo uso mi snappconfig joya y corro

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

para cargar archivos de configuración YAML de mi proyecto en Heroku.

Distribuir

Ahora sólo tiene que presionar a Heroku como esto:

$ git push staging master
$ git push production master

y migrar como esto:

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

(Ver Gestión de varios entornos para una aplicación |. Heroku Dev Center para obtener más información y los accesos directos)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top