Saltar al contenido
Acropolis es experimental: la interfaz, la salida y los valores por defecto pueden cambiar entre versiones.Qué significa
Acropolisby OlimpiaExperimental
Esc
↑↓navegar↵abrir⌘Jvista previa
En esta página

Configuración

Configurá un build con acropolis.json o railpack.json y con variables ACROPOLIS_ o RAILPACK_.

La mayoría de las apps no necesitan configuración: Acropolis detecta el provider a partir del repo, con la misma precedencia que Railpack (Go, Rust, Python, Java y otros ganan sobre un package.json). Cuando la detección necesita ayuda, tenés dos formas de orientarla.

Archivo de configuración

Acropolis lee acropolis.json, o railpack.json si no existe, desde el directorio de la app. --config (o la variable CONFIG_FILE) elige otro archivo, que tiene que estar dentro del directorio de la app. El archivo es JSON (también se acepta JSON5) y sigue el schema de Railpack:

{
  "provider": "node",
  "buildAptPackages": ["libvips-dev"],
  "steps": {
    "build": { "commands": ["npm run build:prod"] }
  },
  "deploy": {
    "startCommand": "node dist/server.js",
    "aptPackages": ["ffmpeg"],
    "paths": ["dist"]
  }
}

Claves soportadas: provider, packages, buildAptPackages, steps (con commands, variables, secrets, deployOutputs), deploy (startCommand, aptPackages, inputs, paths, variables) y exclude. Los secrets y caches de primer nivel de Railpack, los inputs y caches de los steps y deploy.base se aceptan por compatibilidad, pero se ignoran. Las claves desconocidas hacen fallar el build, así que un typo no pasa desapercibido.

Variables

Las variables de la app se pasan con -e KEY=VALUE. Cada setting se lee primero con el prefijo ACROPOLIS_ y después con el prefijo RAILPACK_, así una configuración de Railpack sigue funcionando:

variable qué hace
BUILD_CMD, START_CMD Reemplazan los comandos de build y de arranque detectados.
PROVIDER Fuerza un provider en lugar de detectarlo.
PACKAGES Herramientas extra que se instalan con mise, como node@22 jq.
BUILD_APT_PACKAGES, DEPLOY_APT_PACKAGES Paquetes de Debian para el build y para la imagen de runtime.
NODE_VERSION, BUN_VERSION, GO_VERSION, RUST_VERSION, PYTHON_VERSION, UV_VERSION, RUBY_VERSION, PHP_VERSION, JDK_VERSION, DOTNET_VERSION, ELIXIR_VERSION, GLEAM_VERSION, DENO_VERSION Fijan la versión de un toolchain.
CONFIG_FILE Ruta del archivo de configuración, relativa a la app.

Las variables comunes de la app que pasás con -e (cualquier nombre sin el prefijo ACROPOLIS_ o RAILPACK_) llegan a los steps del build, pero el plan solo lleva referencias {env:NAME}, nunca los valores, y la config de la imagen no las recibe: definí las variables de runtime en el contenedor que corre la imagen. Los settings de la tabla de arriba son distintos: Acropolis lee sus valores para armar el plan, así que pueden terminar en el plan que imprime plan --json y en la config de la imagen (START_CMD pasa a ser el comando de la imagen, por ejemplo). Las variables escritas en los steps personalizados de un archivo de configuración también forman parte del plan. Nunca pongas secretos en estos settings.

info.json no guarda el plan: tiene el hash del plan, los datos detectados y las versiones de toolchain pedidas y resueltas.

Settings del operador

Estas (con el prefijo ACROPOLIS_ o RAILPACK_) se leen solo del entorno del proceso acropolis. Si llegan por -e o por el archivo de configuración se ignoran, así que una app no puede cambiarlas:

variable qué hace
ACROPOLIS_CACHE_KEY Clave de caché por app (también es el --key por defecto de acropolis cache). Si no está, el build usa un hash de la ruta de la app.
ACROPOLIS_CACHE_MAX Después de cada build, recorta el home a este tamaño (20G), como acropolis gc.
ACROPOLIS_NO_CACHE Hace el build sin la caché por app.
ACROPOLIS_BUILD_TIMEOUT Timeout del build completo; 1 h por defecto.
ACROPOLIS_STEP_TIMEOUT Timeout de cada step.
ACROPOLIS_BUILD_ID Id del build que se escribe en cada evento JSON.
ACROPOLIS_ALLOW_PRIVATE_REGISTRY Permite registries privados y http:// para lo que Acropolis descarga por su cuenta.

Última actualización el

¿Te ha resultado útil esta página?