Fijar la versión de Node.js, Python, Go o Ruby
Lizard (lizard.build) lee la versión del runtime de archivos de tu proyecto cuando lizardpack lo compila: .nvmrc o engines.node para Node.js, .python-version o requires-python para Python, la línea go de go.mod para Go, y .ruby-version o la línea ruby del Gemfile para Ruby. Para cambiar la versión, edita ese archivo y vuelve a desplegar. Si no hay ninguno, Lizard usa Node.js 22, Python 3.13, Go 1.24 o Ruby 3.4.
Estado de las pruebas: comprobamos cada regla de esta página el 2026-10-12 ejecutando lizardpack, el planificador de compilación que usan los servidores de compilación de Lizard, sobre proyectos de ejemplo.
Dónde busca Lizard
| Lenguaje | Archivos, gana el primero que coincide | Parte de la versión que se usa | Por defecto | Imagen base |
|---|---|---|---|---|
| Node.js | .nvmrc, .node-version, .tool-versions (nodejs o node), engines.node en package.json | Mayor: 20.11.1 → 20 | 22 | node:<major>-slim |
| Python | .python-version, .tool-versions (python), requires-python en pyproject.toml | Mayor y menor: 3.12.4 → 3.12 | 3.13 | python:<x.y>-slim |
| Go | La línea go de go.mod | Mayor y menor: 1.24.3 → 1.24 | 1.24 | golang:<x.y>-alpine para compilar, alpine:3.19 para ejecutar |
| Ruby | .ruby-version, la línea ruby del Gemfile | Mayor y menor: 3.4.1 → 3.4 | 3.4 | ruby:<x.y>-slim |
Lizard quita el número de parche y compila sobre la etiqueta oficial de la imagen para esa línea, así que cada compilación recibe la versión de parche más reciente a la que apunta la etiqueta en ese momento.
Estos archivos solo cuentan cuando lizardpack escribe el Dockerfile. Consulta cuándo ignora Lizard los archivos de versión.
Cambiar la versión de Node.js
echo 24 > .nvmrc
lizard up --service webCon un servicio de GitHub, haz commit del archivo y push. Reglas:
- Escribe un número:
24,v24y24.1.0eligen Node.js 24. Lizard salta las líneas que empiezan por#. - Lizard salta
lts/*ynodeen.nvmrcy pasa al siguiente archivo. Otros alias, comolts/iron, los usa tal cual, y la compilación falla. .nvmrctiene prioridad sobreengines.node.engines.nodeda la versión más baja de su rango:>=18compila sobre Node.js 18, y^20.11.0, sobre Node.js 20. Un rango con||, como18 || 20, hace fallar la compilación.
Cambiar la versión de Python
echo 3.12 > .python-version
lizard up --service web.python-versiondebe contener un número de versión como3.12o3.12.4. Lizard salta las líneas que empiezan por#. También salta otros valores, comopypy3.10, y pasa al siguiente archivo.requires-python = ">=3.11"compila sobre Python 3.11, la versión más baja del rango.- Un rango con límite superior, como
">=3.11,<3.14", produce un nombre de imagen que no existe y la compilación falla. Añade un archivo.python-version; tiene prioridad. - Lizard no lee
runtime.txt.
Cambiar la versión de Go
go mod edit -go=1.25
lizard up --service apiLizard solo lee la línea go. No lee la línea toolchain.
Cambiar la versión de Ruby
echo 3.4.1 > .ruby-version
lizard up --service webEscribe solo el número. rails new escribe ruby-3.4.1, y Lizard no quita el prefijo ruby-, así que la compilación falla. Una línea del Gemfile como ruby "~> 3.3.0" compila sobre Ruby 3.3. Una app Rails que conserva su Dockerfile generado toma la versión de ese archivo; consulta Desplegar una app Rails.
Cuándo ignora Lizard los archivos de versión
- Tu propio Dockerfile. Manda su línea
FROM, por ejemploFROM node:24-slim. Consulta Desplegar un contenedor Docker desde un Dockerfile. - Un comando de compilación o de inicio en el servicio. En ese caso, Lizard escribe un Dockerfile a partir de los comandos sobre una imagen fija:
node:22-alpine,python:3.13-slimogolang:1.24-alpine, según la primera palabra del comando. Para volver a los archivos de versión, borra los dos:
lizard service set web --set buildCommand= --set startCommand=Borrar buildCommand en un servicio en marcha lanza una recompilación por sí solo. Revisa lizard events antes de ejecutar lizard redeploy, para no poner en cola una segunda compilación. Consulta el orden de decisión de la compilación.
Comprobar qué versión usó una compilación
lizard logs --build --service webEl log de compilación nombra la imagen base, como node:24-slim o python:3.12-slim. Para comprobar la versión en tiempo de ejecución, imprímela al arrancar la app, por ejemplo process.version en Node.js o sys.version en Python, y lee lizard logs --service web.
Ver también
- Proceso de compilación
- Desplegar una app Node.js
- Desplegar una app Go
- Desplegar una app Streamlit
- Desplegar FastAPI
- Desplegar Django
Actualizado