7913116a8e
- .claude/agents/fn-analizador/SKILL.md - .claude/agents/fn-constructor/SKILL.md - .claude/agents/fn-executor/SKILL.md - .claude/agents/fn-mejorador/SKILL.md - .claude/agents/fn-orquestador/SKILL.md - .claude/agents/fn-recopilador/SKILL.md - .claude/commands/app.md - .claude/commands/compile.md - .claude/commands/cpp-app.md - .claude/commands/create_functions.md - ... Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.6 KiB
2.6 KiB
name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
| name | kind | lang | domain | version | purity | signature | description | tags | uses_functions | uses_types | returns | returns_optional | error_type | imports | params | output | tested | tests | test_file_path | file_path | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| init_metabase | pipeline | go | infra | 1.0.0 | impure | func main() — Despliega stack Metabase + Postgres en Docker | Pipeline que inicializa un contenedor Metabase con su base de datos Postgres. Crea red Docker, pull de imágenes, inicia Postgres con volume persistente, espera health check y lanza Metabase conectado. |
|
|
|
false | error_go_core |
|
stdout: JSON con IDs de red, contenedores (postgres, metabase) y URL de acceso | false | functions/pipelines/init_metabase/main.go |
Ejemplo
# Básico
go run functions/pipelines/init_metabase/main.go \
--project analytics \
--metabase-port 3000 \
--pg-user metabase \
--pg-password metabase
# Con volume para registry.db (detecta cambios en vivo)
go run functions/pipelines/init_metabase/main.go \
--project fn_registry \
--mb-volumes "$HOME/fn_registry/registry.db:/data/registry.db"
Salida JSON:
{
"network_id": "abc123...",
"postgres_id": "def456...",
"metabase_id": "ghi789...",
"network_name": "analytics-net",
"postgres_name": "analytics-postgres",
"metabase_name": "analytics-metabase",
"metabase_url": "http://localhost:3000"
}
Notas
El pipeline orquesta 5 pasos secuenciales:
- Red Docker — crea
{project}-netcon driver bridge - Pull — descarga
postgres:16ymetabase/metabase:latest - Postgres — inicia con volume persistente (named volume por defecto o bind mount con
--pg-volume) - Health check — retry exponencial (hasta ~34 min) con
pg_isreadydentro del contenedor - Metabase — conecta a Postgres via red interna, expone en puerto configurable. Con
--mb-volumesmonta volumes adicionales (ej: registry.db para SQLite) - Permisos — ajusta ownership de directorios montados para el usuario
metabase(UID 2000) dentro del contenedor
Reutiliza conceptualmente docker_create_network, docker_pull_image, docker_run_container, docker_inspect_container y retry_with_backoff, reimplementadas inline por ser un ejecutable independiente.
Para destruir el stack:
docker stop analytics-metabase analytics-postgres
docker rm analytics-metabase analytics-postgres
docker network rm analytics-net