Академический Документы
Профессиональный Документы
Культура Документы
para comprender mejor cómo se usan y para adaptar la publicidad. Puede leer más
(https://www.salesforce.com/company/privacy/full_privacy.jsp#nav_info) y hacer sus elecciones de
cookies aquí (https://www.salesforce.com/company/privacy/full_privacy.jsp#nav_info) . Al continuar
usando este sitio, nos está dando su consentimiento para hacerlo.
G Tabla de contenido
Requisitos previos: instale Git y la CLI de Heroku
Código de implementación
Construir caché
Otros limites
Recursos adicionales
Heroku administra las implementaciones de aplicaciones con Git (https://git-scm.com/) , el popular sistema de control de versiones.
Definitivamente no necesita ser un experto en Git para implementar código en Heroku, pero es útil aprender los conceptos básicos.
i Si su aplicación ya está rastreada en un repositorio Git, proceda a Crear un control remoto Heroku .
Antes de que pueda implementar su aplicación en Heroku, debe inicializar un repositorio local de Git y confirmar el código de su
aplicación.
El siguiente ejemplo muestra la inicialización de un repositorio Git para una aplicación que vive en el myapp directorio:
$ cd myapp
$ git init
Initialized empty Git repository in .git/
$ git add .
$ git commit -m "My first commit"
Created initial commit 5df2d09: My first commit
44 files changed, 8393 insertions(+), 0 deletions(-)
create mode 100644 README
create mode 100644 Procfile
create mode 100644 app/controllers/source_file
...
t Asegúrese de inicializar el repositorio de Git en el directorio raíz de su aplicación. Si su aplicación está en un subdirectorio de su
repositorio, no se ejecutará cuando se envíe a Heroku.
El código de su aplicación ahora se rastrea en un repositorio local de Git. Todavía no se ha enviado a ningún servidor remoto.
El heroku create comando CLI crea una nueva aplicación vacía en Heroku, junto con un repositorio Git vacío asociado. Si ejecuta este
comando desde el directorio raíz de su aplicación, el repositorio vacío Heroku Git se configura automáticamente como remoto para su
repositorio local.
$ heroku create
Creating app... done, thawing-inlet-61413
https://thawing-inlet-61413.herokuapp.com/ | https://git.heroku.com/thawing-inlet-61413.git
Puede usar el git remote comando para confirmar que heroku se haya configurado un control remoto con nombre para su aplicación:
$ git remote -v
heroku https://git.heroku.com/thawing-inlet-61413.git (fetch)
heroku https://git.heroku.com/thawing-inlet-61413.git (push)
Si ya ha creado su aplicación Heroku, puede agregar fácilmente un control remoto a su repositorio local con el heroku
git:remote comando. Todo lo que necesitas es el nombre de tu aplicación Heroku:
Cambiar el nombre de su control remoto Heroku puede ser útil si tiene varias aplicaciones Heroku que usan la misma base de código
(por ejemplo, las versiones de preparación y producción de una aplicación). En este caso, cada aplicación Heroku tiene su propio
control remoto en su repositorio local.
El resto de este artículo asume que su aplicación tiene un único control remoto Heroku con nombre heroku .
Código de implementación
Para implementar su aplicación en Heroku, generalmente usa el git push comando para enviar el código desde la master rama de su
repositorio local a su heroku control remoto, de esta manera:
Use este mismo comando cuando quiera implementar la última versión confirmada de su código en Heroku.
Tenga en cuenta que Heroku solo implementa el código que inserta en la master rama del heroku control remoto. Empujar el código a
otra rama del control remoto no tiene ningún efecto.
Si desea implementar código en Heroku desde una master sucursal no perteneciente a su repositorio local (por ejemplo testbranch ),
use la siguiente sintaxis para asegurarse de que se envíe a la master sucursal del control remoto :
i Las aplicaciones que dependen de submódulos Git son compatibles, además de muchas otras estrategias de resolución de
dependencias (https://devcenter.heroku.com/articles/git-submodules) .
r git lfs (https://git-lfs.github.com/) no es compatible, y su uso puede hacer que los empujes fallen.
Por ejemplo, consideremos dos construcciones, A y B. Si Construir B empieza después de Build pero acabados antes de que, Heroku
se desplegarán Construir B primero . Luego, cuando la construcción A finalmente se complete, Heroku la implementará, reemplazando
la construcción B.
i Por defecto, Heroku usa HTTP como su transporte Git. La CLI de Heroku colocará automáticamente las credenciales en el
.netrc archivo heroku login . El cliente Git usa cURL cuando interactúa con controles remotos HTTP, y cURL usará las
credenciales del .netrc archivo. Consulte la sección Autenticación y el artículo de autenticación CLI
(https://devcenter.heroku.com/articles/authentication) para más detalles.
El punto final Heroku HTTP Git solo acepta autenticación básica HTTP (http://en.wikipedia.org/wiki/Basic_access_authentication)
basada en clave API . No se requiere un nombre de usuario y se ignora cualquier valor pasado para el nombre de usuario.
t No puede autenticarse con el punto final Heroku HTTP Git utilizando su nombre de usuario (correo electrónico) y contraseña de
Heroku. Use una clave API como se describe en esta sección
Si, por algún motivo, se autentica en el servicio Git con credenciales incorrectas, obtendrá este error:
remote: ! WARNING:
remote: ! Do not authenticate with username and password using git.
remote: ! Run `heroku login` to update your credentials, then retry the git command.
remote: ! See documentation for details: https://devcenter.heroku.com/articles/git#http-git-authentication
Cuando lo haga heroku login , la CLI escribirá una entrada git.heroku.com en su .netrc archivo (o su equivalente de Windows). Dado
que el cliente Git usa cURL cuando interactúa con los controles remotos HTTP Git, la autenticación correcta ahora se realizará de
forma transparente.
Si está utilizando otros clientes Git, como EGit o Tower, configúrelos para usar una cadena vacía para el nombre de usuario (o
cualquier cadena que desee, se ignora) y la clave API de su cuenta para la contraseña. La clave API está disponible en la CLI
(https://devcenter.heroku.com/articles/authentication#retrieving-the-api-token) y en el Panel
(https://dashboard.heroku.com/account) de control (https://dashboard.heroku.com/account) .
Para utilizar el transporte SSH Git, debe registrar su clave SSH con Heroku. Consulte el artículo Gestión de claves SSH
(https://devcenter.heroku.com/articles/keys) para obtener más información.
Si desea usar siempre SSH Git con Heroku en una máquina en particular, puede agregar la siguiente configuración global:
t El transporte SSH Git no es compatible con usuarios SSO; Los usuarios de SSO deben usar el transporte HTTP Git.
Construir caché
Los paquetes de compilación (https://devcenter.heroku.com/articles/buildpacks) pueden opcionalmente almacenar en caché el
contenido (como las dependencias de la aplicación) para acelerar en gran medida futuras compilaciones.
Si sospecha que un error en esta memoria caché está causando un problema de compilación, puede usar el heroku-repo
(https://github.com/heroku/heroku-repo)complemento para borrarlo.
Las causas comunes de los repositorios grandes son los archivos binarios registrados en el repositorio (Git es notoriamente malo en el
manejo de binarios) o los registros de desarrollo que cambian constantemente. La eliminación de archivos cometidos por accidente se
puede hacer con git filter-branch (http://git-scm.com/book/en/Git-Internals-Maintenance-and-Data-Recovery#_removing_objects) ,
aunque después de ejecutarlo tendrá que presionar con la --force opción, que es algo que requiere coordinación entre su equipo.
Otros limites
Para proteger el servicio Git, Heroku impone ciertos límites en el uso del repositorio Git y el tamaño del contenido.
Los usuarios están limitados a una ventana móvil de 75 solicitudes Git por hora, por usuario, por aplicación. Una vez que se alcanza
este límite, se rechazan las solicitudes de Git hasta que los niveles de solicitud caigan por debajo del límite durante unos minutos, con
el mensaje de error:
! Too many requests for this Git repo. Please try again later.
Si alcanza este límite, asegúrese de que no haya procesos automatizados o scripts que sondeen el repositorio de Git.
Además, el tamaño sin comprimir de un pago HEAD desde el repositorio, combinado con el tamaño de los submódulos restaurados, no
puede exceder 1 GB.
t Puedes aprender mucho más .gitignore en nuestro artículo sobre el tema (https://devcenter.heroku.com/articles/gitignore)
.
Por ejemplo, si está utilizando Subversion, inicialice su repositorio Git como se describe anteriormente. Luego, agregue un
.gitignore archivo para decirle a Git que ignore sus directorios de Subversion.
$ git init
$ echo .svn > .gitignore
$ git add .
$ git commit -m "using git for heroku deployment"
t Se -f recomienda el (indicador de fuerza) para evitar conflictos con los empujes de otros desarrolladores. Como no está utilizando
Git para su control de revisión, sino solo como transporte, usar la bandera de fuerza es una práctica razonable.
$ git add -A
$ git commit -m "commit for deploy to heroku"
...
Recursos adicionales
Git on Rails (http://railscasts.com/episodes/96) muestra convenciones comunes para usar Git para rastrear aplicaciones Rails.
El libro Pro Git (https://git-scm.com/book) es un gran recurso que cubre todo Git.