mirror of
https://origin.cursor.com/mrdevmx/panels.git
synced 2026-10-09 11:23:18 +00:00
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 <alberto.martinez@mrdev.mx>
This commit is contained in:
parent
05d1a8c133
commit
b68313c5ee
3 changed files with 31 additions and 3 deletions
|
|
@ -4,12 +4,18 @@
|
||||||
#
|
#
|
||||||
# Coolify: un solo archivo — docker-compose.yml. No añadir overlays.
|
# 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
|
# 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:
|
services:
|
||||||
migrate:
|
migrate:
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: Dockerfile.migrate
|
dockerfile: Dockerfile.migrate
|
||||||
restart: "no"
|
restart: "no"
|
||||||
|
networks:
|
||||||
|
- default
|
||||||
|
- data
|
||||||
environment:
|
environment:
|
||||||
DATABASE_URL_PLATFORM_OWNER: ${DATABASE_URL_PLATFORM_OWNER:?}
|
DATABASE_URL_PLATFORM_OWNER: ${DATABASE_URL_PLATFORM_OWNER:?}
|
||||||
DATABASE_URL_IAM_OWNER: ${DATABASE_URL_IAM_OWNER:?}
|
DATABASE_URL_IAM_OWNER: ${DATABASE_URL_IAM_OWNER:?}
|
||||||
|
|
@ -53,6 +59,9 @@ services:
|
||||||
S3_REGION: ${S3_REGION:-auto}
|
S3_REGION: ${S3_REGION:-auto}
|
||||||
S3_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID:-}
|
S3_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID:-}
|
||||||
S3_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY:-}
|
S3_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY:-}
|
||||||
|
networks:
|
||||||
|
- default
|
||||||
|
- data
|
||||||
volumes:
|
volumes:
|
||||||
- panel-data:/app/data
|
- panel-data:/app/data
|
||||||
expose:
|
expose:
|
||||||
|
|
@ -98,3 +107,8 @@ services:
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
panel-data:
|
panel-data:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
data:
|
||||||
|
name: ${PANELS_DOCKER_NETWORK:-coolify}
|
||||||
|
external: true
|
||||||
|
|
|
||||||
|
|
@ -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`.
|
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-<uuid>`).
|
||||||
|
|
||||||
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:
|
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-<uuid-del-recurso>-<timestamp>
|
sudo docker logs migrate-<uuid-del-recurso>-<timestamp>
|
||||||
```
|
```
|
||||||
|
|
||||||
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`.
|
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`.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -79,3 +79,9 @@ services:
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
postgres-data:
|
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
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue