Saltar al contenido principal

Go

Resumen​

ElementoValor
nombre en la APIgo
imagen OCI de origengolang:1.25-alpine
límite de recursos por job2 vCPU, 1024 MiB

El límite de vCPU y RAM existe contra el abuso; la memoria de libkrun es elástica y el host solo paga lo que el guest toca.

Warmup​

El build compila un programa con GOCACHE=/opt/runner/gocache, lo que llena la caché de build de la biblioteca estándar dentro de la imagen. Como el root es de solo lectura, start.sh copia esa caché a /tmp/go-cache en el arranque, la ruta que el ejecutor del guest fuerza en GOCACHE. La copia ocurre antes de que la VM entre al pool y no pesa en el job. Medido: go run en 247 ms con la caché caliente, frente a 3,4 s sin ella.

Consulte Imágenes.

Cómo se ejecuta el código​

El archivo principal (el primero de files) se ejecuta con go run <archivo>. Sin red, solo la biblioteca estándar está disponible: los módulos externos no se descargan. Todo se ejecuta en un directorio en /tmp (tmpfs), en una VM nueva que se destruye al final del job.

Construir la imagen​

rc image build --stack go

Ejemplo​

curl -s http://127.0.0.1:8080/api/v1/run \
-H 'Content-Type: application/json' \
-d '{
"language": "go",
"files": [
{"name": "main.go", "content": "package main\n\nimport \"fmt\"\n\nfunc main() {\n\tfmt.Println(6 * 7)\n}\n"}
]
}'

stdout esperado: 42.