image
Uso​
rc image build --stack python
rc image build --stack python --stack go
rc image build --stack python,go
rc image build --all
| Flag | DescripciĂłn |
|---|---|
--stack | lenguaje del catálogo; repetible o separado por comas |
--all | todos los lenguajes del catálogo |
Sin --stack ni --all, el comando falla con informe --stack ou --all. Un lenguaje fuera del catálogo falla con E006.
Mediante el Taskfile (que compila antes):
task image:build -- --stack python
task image:build -- --all
image prune​
rc image prune # builds antiguos a los que ya no apunta ningĂşn nombre (el guest o start.sh cambiaron, la clave cambiĂł)
rc image prune --all # también las imágenes y los packs que ninguna máquina usa
Las imágenes fuera del catálogo (rc machine create --image ...) usan el mismo build, sin warmup.
Salida​
Una lĂnea por lenguaje:
python <caminho do ext4> cached=false elapsed=<tempo> <métricas do build>
cached=truecuando la clave ya existĂa en la cachĂ© y no se reconstruyĂł nada.- Las mĂ©tricas vienen de la VM de build: tiempo de extracciĂłn, de warmup y de
mkfs, y el tamaño usado y el del disco.
Qué hace el build​
- Descarga la imagen OCI con go-containerregistry (sin Docker) y aplana las capas en un tar.
- Arranca una VM de build Alpine 3.22.6 (tarball base oficial de Alpine, con sha256 verificado; e2fsprogs y GNU tar vĂa
apk). - Dentro de ella, como root: extrae el tar en un tmpfs, inyecta el guest y
start.shen/opt/runner/, ejecuta el warmup en chroot y genera el ext4 conmkfs.ext4 -d. - Graba
<lang>-<chave>.ext4en la caché y apunta el symlink<lang>.ext4hacia él.
El porqué de cada etapa, la clave de la caché y el warmup de cada lenguaje están en Imágenes.
Cuándo reconstruir​
La clave incluye el digest de la imagen, el warmup, build.sh, start.sh y el guest. Después de cambiar cualquiera de ellos (incluso recompilar el guest con otro código), vuelva a ejecutar el build: la clave cambia sola y se genera una imagen nueva.
Tiempo​
En la máquina medida (macOS 27.0.1, Apple Silicon), la imagen de Python tardó ~8–10 s, de los cuales 2,7 s fueron de pull y aplanado. La de Go
tardĂł 35 s, 28 de ellos en mkfs.ext4. El build necesita red (pull y warmup); la VM del job no la tiene.