750b7abcd5
- .claude/CLAUDE.md - .claude/agents/fn-recopilador/SKILL.md - .claude/rules/INDEX.md - .claude/rules/cpp_apps.md - bash/functions/infra/build_cpp_windows.sh - cpp/CMakeLists.txt - cpp/PATTERNS.md - cpp/framework/app_base.cpp - cpp/framework/app_base.h - dev/issues/README.md - ... Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1.9 KiB
1.9 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 | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| generate_compose_traefik | function | go | infra | 1.0.0 | pure | func GenerateComposeTraefik(cfg ComposeTraefikConfig) string | Genera el texto YAML de un docker-compose.yml para una app Go desplegada behind Traefik + Coolify. Replica el patron de apps/registry_api/docker-compose.yml. Determinista: orden de EnvVars sigue el orden de entrada. |
|
|
false |
|
|
texto YAML completo del docker-compose.yml listo para escribir a disco | true |
|
functions/infra/generate_compose_traefik_test.go | functions/infra/generate_compose_traefik.go |
Ejemplo
cfg := ComposeTraefikConfig{
ProjectName: "kanban",
ServiceName: "kanban",
BuildContext: "../../",
Dockerfile: "apps/kanban/Dockerfile",
Port: 8421,
VolumeName: "kanban_data",
EnvVars: []string{"KANBAN_TOKEN"},
Network: "coolify",
}
yaml := GenerateComposeTraefik(cfg)
os.WriteFile("apps/kanban/docker-compose.yml", []byte(yaml), 0644)
Notas
Funcion pura: dado el mismo ComposeTraefikConfig siempre produce el mismo YAML. Si VolumeName es "" se omite la seccion volumes: y el mount. Si EnvVars es nil/vacio se omite la seccion environment:. Los env vars se generan con la sintaxis ${KEY:-} (passthrough con fallback vacio) para que el contenedor arranque sin el .env si la variable no es critica.