Para utilizar una versión de lenguaje diferente, establece la versión en los archivos de tu aplicación.
Cuando se utiliza Nixpacks, normalmente no es necesario elegir o añadir diferentes paquetes para la construcción porque se detectan automáticamente. Si se necesitan paquetes adicionales para la aplicación, puedes definirlos en un archivo de configuración de Nixpacks.
Si quieres utilizar un lenguaje que no es compatible con Nixpacks o buildpacks, debes utilizar un archivo Dockerfile. Cuando añadas tu aplicación, puedes seleccionar la opción Utilizar Dockerfile para configurar la imagen del contenedor.
Configurar Nixpacks
Algunas aplicaciones no requieren configuración, pero otras necesitan comandos y opciones especializados para ejecutarse, como por ejemplo:
Variables de entorno — Puede que necesites configurar ciertas variables de entorno para ejecutar tu aplicación.
Procesos — Kinsta puede detectar automáticamente tu comando de proceso web. Puedes cambiarlo si es necesario, y puedes definir procesos adicionales.
Procesos en un Procfile — Puede que quieras definir tus procesos en un Procfile dentro del código de tu aplicación.
Directorios Binarios de Nixpacks
Con Nixpacks, 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 algunos de los lenguajes más comunes:
Idioma | Directorio |
---|
Node.js | /nix/var/nix/profiles/default/bin/node |
Ruby | /nix/var/nix/profiles/default/bin/ruby |
Python | /nix/var/nix/profiles/default/bin/python |
Java | /nix/var/nix/profiles/default/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 suelen almacenarse 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 paquetes). Si es necesario, puedes instalar las herramientas de tiempo de ejecución de Scala utilizando un Dockerfile en lugar de utilizar un Nixpack. |
PHP | /nix/var/nix/profiles/default/bin/php |
Go | Go no tiene una ruta binaria específica por defecto como otros lenguajes compilados. Cuando compilas un programa Go, el ejecutable binario resultante suele colocarse 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 utilizar un Nixpack. |
Establecer la Versión del Lenguaje de un Nixpack
Cuando selecciones la opción Utilizar Nixpacks para configurar la imagen del contenedor, si no especificas una versión en el código de tu aplicación, el Nixpack utilizará la última versión disponible. Si quieres utilizar una versión diferente para tu aplicación, tendrás que establecer la versión en los archivos de tu aplicación o, dependiendo del lenguaje, con una variable de entorno.
Los métodos disponibles para establecer la versión varían según el lenguaje. A continuación, hemos incluido ejemplos para los lenguajes más comunes.
Go
Para especificar tu versión de Go, incluye lo siguiente en el archivo go.mod de tu aplicación:
Java
Para especificar tu versión de Java, establece la variable de entornoNIXPACKS_JDK_VERSION
y asegúrate de que la variable está disponible durante el proceso de construcción.
Si utilizas Gradle, para especificar la versión, establece la variable de entornoNIXPACKS_GRADLE_VERSION
y asegúrate de que la variable está disponible durante el proceso de construcción.
Node.js
Para especificar tu versión de Node.js, haz una de las siguientes cosas:
Incluye lo siguiente en el archivo package.json de tu aplicación:
"engines": {
"node": "18"
}
Establece la variable de entornoNIXPACKS_NODE_VERSION
y asegúrate de que la variable está disponible durante el proceso de construcción.
[notice type="info"]Sólo se puede especificar la versión principal, como 14 o 14.x. Se utilizará la última versión de esa versión principal.