Imagen oficial dagmalia/godml
La imagen oficial de godml está publicada en Docker Hub y contiene un entorno Python optimizado y securizado con todas las dependencias de godml preinstaladas.
docker pull dagmalia/godml:1.2.1
¿Para qué sirve esta imagen?
| Caso de uso | Descripción |
|---|---|
| Entorno de desarrollo | Ejecuta pipelines godml sin instalar nada en tu máquina |
| Base para tus imágenes | Extiéndela con tu código y modelos |
| CI/CD | Imagen base reproducible y firmada para pipelines de entrenamiento |
| Servidor API | Sirve modelos entrenados como API REST |
Tags disponibles
| Tag | Descripción |
|---|---|
dagmalia/godml:1.2.1 | Versión estable actual |
dagmalia/godml:latest | Apunta siempre al último release |
Modos de operación
La imagen expone tres modos a través de la variable de entorno MODE:
MODE=api (default)
Levanta el servidor de inferencia FastAPI en el puerto 8000.
docker run --rm -p 8000:8000 \
-e MODE=api \
-v $(pwd)/models:/app/models \
dagmalia/godml:1.2.1
MODE=cli
Ejecuta comandos de la CLI de godml directamente.
# Ver versión
docker run --rm dagmalia/godml:1.2.1 \
-e MODE=cli version
# Ejecutar un pipeline
docker run --rm \
-e MODE=cli \
-v $(pwd):/app \
dagmalia/godml:1.2.1 run -f godml.yml
MODE=idle
Mantiene el contenedor activo sin ejecutar nada. Útil para exploración e inspección:
docker run --rm -it \
-e MODE=idle \
dagmalia/godml:1.2.1 bash
Variables de entorno
| Variable | Descripción | Default |
|---|---|---|
MODE | Modo de operación (api, cli, idle) | api |
PORT | Puerto del servidor API | 8000 |
GODML_ENV | Entorno del pipeline (dev, qa, prod) | dev |
Extender la imagen
Puedes usar dagmalia/godml como base para tu propia imagen con el modelo incluido:
FROM dagmalia/godml:1.2.1
# Copia el modelo entrenado
COPY output/model.pkl /app/models/prod/model.pkl
# Copia la configuración del pipeline
COPY godml.yml /app/godml.yml
ENV GODML_ENV=prod \
MODE=api \
PORT=8000
docker build -t mi-modelo:v1 .
docker run --rm -p 8000:8000 mi-modelo:v1
Para producción usa siempre un tag específico (1.2.1) en vez de latest para garantizar reproducibilidad.
Seguridad y supply chain
La imagen está construida con controles de supply chain nivel SLSA:
| Control | Detalle |
|---|---|
| Firma Cosign | Firmada con OIDC keyless via GitHub Actions |
| Provenance SLSA v1 | Attestation embebida en el manifiesto |
| SBOM | Lista completa de paquetes en formato SPDX JSON |
| Base auditada | Ubuntu 24.04 LTS + apt-get upgrade en cada build |
| Pip-audit | Escaneo de vulnerabilidades en cada release |
| Usuario no-root | Corre como godmluser (UID 65532) |
Verificar la firma
# Instalar cosign (https://docs.sigstore.dev/cosign/installation)
cosign verify dagmalia/godml:1.2.1 \
--certificate-identity-regexp="https://github.com/DAGMALIA/godml-image" \
--certificate-oidc-issuer="https://token.actions.githubusercontent.com"
Inspeccionar el SBOM
docker buildx imagetools inspect dagmalia/godml:1.2.1 --format '{{ json .SBOM }}'
godml deployEl Dockerfile generado por godml deploy (o el que construyes manualmente en Deploy — Servir modelos) usa python:3.11-slim como base e instala godml desde PyPI. La imagen dagmalia/godml es la imagen oficial precompilada, con Python construido desde fuente y firmada con Cosign — ideal cuando necesitas garantías de supply chain.