Kinsta ofrece Buildpacks, un proyecto de código abierto mantenido por Heroku, como una de las opciones para determinar y crear automáticamente un contenedor para tu aplicación basándose en tu repositorio. Los buildpacks son scripts que se ejecutan cuando tu aplicación se despliega para instalar dependencias de la misma y configurar tu entorno.

Puedes elegir Buildpacks al añadir una aplicación o cambiando la opción Entorno de construcción en la configuración de la aplicación (Configuración > Detalles básicos > Editar detalles).

Supported Languages

Admitimos los siguientes lenguajes de aplicaciones para los buildpacks:

Si quieres utilizar una versión del lenguaje diferente para tu aplicación, tendrás que establecer la versión en los archivos de tu aplicación.

Si quieres utilizar un lenguaje que no es un lenguaje Buildpack soportado, puedes comprobar primero si es un lenguaje soportado con Nixpacks. Si no lo es, deberás utilizar un Dockerfile. Cuando añadas tu aplicación, puedes seleccionar la opción Utilizar Nixpacks para configurar la imagen del contenedor o Utilizar Dockerfile para configurar la imagen del contenedor.

Configurar Buildpacks

Algunas aplicaciones no requieren ninguna configuración, pero otras requieren comandos y opciones especializadas para ejecutarse, como por ejemplo:

Variables de entorno — Es posible que necesites establecer ciertas variables de entorno para ejecutar tu aplicación.

Procesos — Kinsta puede detectar automáticamente tu comando de proceso web. Puedes cambiar esto si es necesario, y puedes definir procesos adicionales.

Procesos en un Procfile — Puedes querer definir tus procesos en un Procfile dentro del código de tu aplicación.

Añadir o Editar Buildpacks

Puedes gestionar los buildpacks en la página de Configuración de tu aplicación. Para añadir buildpacks adicionales, haz clic en Añadir buildpack. Para eliminar o cambiar el orden de los buildpacks de tu aplicación, haz clic en Editar buildpacks.

Cuando añades un paquete de construcción, se añade automáticamente al final de la lista de buildpacks, por lo que es posible que tengas que editar el orden de tus buildpacks. Puedes arrastrar y soltar los buildpacks para cambiar su orden en el modal/pop-up Editar buildpacks.

Directorios Binarios Buildpack

Con los buildpacks, los directorios binarios pueden diferir de los directorios binarios predeterminados para el lenguaje de la aplicación. La siguiente tabla muestra los directorios binarios utilizados para cada lenguaje buildpack:

Lenguaje Directorio
Node.js /layers/heroku_nodejs-engine/dist/bin/node
Ruby /usr/bin/ruby
Python /usr/bin/python
Java /layers/heroku_jvm/openjdk/bin/java
Scala Scala no tiene una ruta binaria específica por defecto como otros lenguajes compilados. Cuando compilas un programa Scala, genera bytecode que se ejecuta en la máquina virtual Java (JVM).

Las clases Scala compiladas se almacenan normalmente en una estructura de directorios que refleja la estructura de paquetes de tu código. Esto es similar a cómo se organizan las clases Java. Por defecto, cuando compilas un archivo fuente Scala, los archivos .class compilados se colocarán en el mismo directorio que el código fuente (dentro de una estructura de subdirectorios basada en las declaraciones de paquete).

Si es necesario, puedes instalar las herramientas de ejecución de Scala utilizando un Dockerfile en lugar de un buildpack.

PHP /workspace/.heroku/php/bin/
Go Go no tiene una ruta binaria específica por defecto como otros lenguajes compilados. Cuando compilas un programa Go, el ejecutable binario resultante se coloca por defecto en el mismo directorio que tu código fuente.

Si es necesario, puedes instalar las herramientas de ejecución de Go utilizando un Dockerfile en lugar de un buildpack.

Documentación Relacionada