From b68313c5ee6781b12b2bdfce2411abf44bc0d6d0 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 3 Sep 2026 05:25:53 +0000 Subject: [PATCH] compose: unir migrate y api a la red coolify El host qzegekm3sr2bevgxl4wh4th2 es el UUID interno de Postgres; solo resuelve en esa red. Sin ella Liquibase lanza UnknownHostException. Co-authored-by: alberto.martinez --- docker-compose.yml | 14 ++++++++++++++ docs/coolify.md | 14 +++++++++++--- overlays/compose.local.yml | 6 ++++++ 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 54d0b40..9b28b43 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,12 +4,18 @@ # # Coolify: un solo archivo — docker-compose.yml. No añadir overlays. # Local: docker compose -f docker-compose.yml -f overlays/compose.local.yml up --build +# +# `data` = red donde viven Postgres/Redis de Coolify (UUID tipo +# qzegekm3sr2bevgxl4wh4th2). Sin esta red, Liquibase da UnknownHostException. services: migrate: build: context: . dockerfile: Dockerfile.migrate restart: "no" + networks: + - default + - data environment: DATABASE_URL_PLATFORM_OWNER: ${DATABASE_URL_PLATFORM_OWNER:?} DATABASE_URL_IAM_OWNER: ${DATABASE_URL_IAM_OWNER:?} @@ -53,6 +59,9 @@ services: S3_REGION: ${S3_REGION:-auto} S3_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID:-} S3_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY:-} + networks: + - default + - data volumes: - panel-data:/app/data expose: @@ -98,3 +107,8 @@ services: volumes: panel-data: + +networks: + data: + name: ${PANELS_DOCKER_NETWORK:-coolify} + external: true diff --git a/docs/coolify.md b/docs/coolify.md index 2c3f161..f8c94a1 100644 --- a/docs/coolify.md +++ b/docs/coolify.md @@ -98,9 +98,17 @@ En Coolify el servicio de PANELS se llama **`web-panel`** (FQDN ej. `panels.mrde El host de las 6 `DATABASE_URL_*` y de las 2 `REDIS_URL_*` **no** es el ID corto del contenedor (`docker exec -it c72dde7d6b47 …`). Docker DNS en Coolify **no** resuelve ese ID; Liquibase falla con `UnknownHostException`. -Usa el hostname de **Postgres URL (internal)** / **Redis URL (internal)** en Coolify: el segmento entre `@` y `:5432` (o `:6379`). Suele ser un UUID o el nombre de servicio de Coolify, no los 12 caracteres del `CONTAINER ID`. +Usa el hostname de **Postgres URL (internal)** / **Redis URL (internal)** en Coolify: el segmento entre `@` y `:5432` (o `:6379`). Un UUID tipo `qzegekm3sr2bevgxl4wh4th2` **es el host correcto**; un CONTAINER ID de 12 caracteres (`c72dde7d6b47`) no. -Además, el recurso Docker Compose de PANELS debe estar en la **misma red** que Postgres y Redis (Connect to Predefined Network, a menudo `coolify`). Si no, el hostname interno existe pero el contenedor `migrate` no lo ve. +Ese UUID solo resuelve en la red Docker **`coolify`**. `docker-compose.yml` une `migrate` y `api` a esa red (`networks.data`). En Coolify deja también **Connect to Predefined Network**. Redis tiene **otro** UUID (el de Redis URL internal), no el de Postgres. + +Si tras unir la red sigue `UnknownHostException`, en el VPS: + +```bash +sudo docker network inspect coolify | grep -E 'Name|Aliases|qzegekm3' +``` + +Usa el alias que aparezca junto al contenedor de Postgres (a veces `postgres-`). El log de deploy de Coolify **no** incluye stdout de Liquibase. Si `service "migrate" didn't complete successfully: exit 1`, el error real está en: @@ -108,7 +116,7 @@ El log de deploy de Coolify **no** incluye stdout de Liquibase. Si `service "mig sudo docker logs migrate-- ``` -Ejemplo de este entorno: `sudo docker logs migrate-pdyrt8ccp804tfmutefau0k6-052025710094`. Debe verse `==> host JDBC: …` y el error de Liquibase. Un host de 12 caracteres hex (`c72dde7d6b47`) es el CONTAINER ID — cámbialo. `Liquibase OK` + exit 0 = bien. +Ejemplo: `sudo docker logs migrate-pdyrt8ccp804tfmutefau0k6-052025710094`. `UnknownHostException` con un UUID largo = `migrate` fuera de `coolify`, no un host mal copiado. `Liquibase OK` + exit 0 = bien. El `docker stop … No such container` del helper de Coolify es ruido de limpieza, no la causa. El build de imágenes puede ser OK y el deploy igual falla en `migrate`. diff --git a/overlays/compose.local.yml b/overlays/compose.local.yml index acdadbc..e3b5354 100644 --- a/overlays/compose.local.yml +++ b/overlays/compose.local.yml @@ -79,3 +79,9 @@ services: volumes: postgres-data: + +# El compose de Coolify exige la red externa `coolify`. En local no existe: +# esta red puente sustituye `data` (Compose 2.24+ !override). +networks: + data: !override + name: panels-local-data