6 Commits
Author SHA1 Message Date
maxime.killinger 7de55c5655 PG18 de retour, mises à jour nocturnes, tests de reprise et documentation
🚀 Docker Build and Push / build-and-push (15) (push) Successful in 5m29s
🚀 Docker Build and Push / build-and-push (16) (push) Successful in 6m10s
🚀 Docker Build and Push / build-and-push (17) (push) Successful in 5m20s
🚀 Docker Build and Push / build-and-push (18) (push) Successful in 5m21s
Image
- Étape `base` commune : tous les paquets sont mis à niveau (PostgreSQL à la
  dernière mineure, pgvector, Debian). L'image de base de VectorChord restait
  figée à la version de sa publication.
- En-têtes du serveur épinglés sur la version du serveur installé. PG18 avait
  été retiré parce que TimescaleDB, compilé avec des en-têtes 18.6, était chargé
  par un serveur 18.3 (`undefined symbol: palloc0_mul`).
- Sonde de santé avec l'utilisateur et la base du conteneur : en `postgres`,
  elle écrivait une erreur FATAL au journal dès que POSTGRES_USER était défini.
- Label `base.name` corrigé : il reprenait la version du paquet au lieu de la
  version majeure.

CI
- PG18 ajouté à la matrice.
- Exécution nocturne : apt est interrogé dans l'image publiée ; elle n'est
  reconstruite et republiée que s'il lui reste des mises à jour, sinon elle est
  seulement testée. Lancement manuel possible.
- `docker-build.yml` supprimé : l'ancien workflow à actions externes tournait
  encore à chaque push, en double de `docker.yml`.
- `paths-ignore` : un push de documentation seule ne lance pas la CI.
- Labels `version`, `url` et `fr.killinger.apt-refresh`.

Tests
- `tests.sh`, la même commande en local et en CI : utilisateur et base autres
  que `postgres`, version majeure du serveur, présence des cinq extensions,
  redémarrage, et reprise d'une base créée par l'image publiée.

Documentation
- README en vitrine, CLAUDE.md, docs/architecture.md,
  docs/exploitation/publication.md, six décisions, docs/a-faire.md.
2026-10-02 17:55:42 +02:00
maxime.killinger 2a0f84e81a CI accélérée : sans action externe ni Buildx, cache du démon, une seule construction par version
🚀 Docker Build and Push / build-and-push (15) (push) Successful in 7m27s
🚀 Docker Build and Push / build-and-push (16) (push) Successful in 7m41s
🚀 Docker Build and Push / build-and-push (17) (push) Successful in 7m9s
🚀 Docker Build and Push / build-and-push (15) (push) Successful in 4m29s
🚀 Docker Build and Push / build-and-push (16) (push) Successful in 4m25s
🚀 Docker Build and Push / build-and-push (17) (push) Successful in 4m17s
2026-09-27 11:49:28 +02:00
maxime.killinger dcf4169d3d feat(docker): add PostGIS and remove unstable PG18 support
🚀 Docker Build and Push / build-and-push (16) (push) Successful in 16m11s
🚀 Docker Build and Push / build-and-push (15) (push) Successful in 16m26s
🚀 Docker Build and Push / build-and-push (17) (push) Successful in 11m7s
- Install PostGIS (postgresql--postgis-3) in the final image.

- Add postgis and postgis_topology to init-extensions.sh.

- Add test script for PostGIS to the CI workflow.

- Update README.md to reflect PostGIS integration.

- Remove PG18 from CI matrix because of ABI incompatibility between TimescaleDB headers and the vchord-postgres PG18 runtime (missing palloc0_mul). PG18 support will be restored when VectorChord releases a stable PG18 image.
2026-08-03 18:14:08 +02:00
maxime.killinger f0d5f4870e fix(docker): resolve permission denied error for PG18+ volume mounts
🚀 Docker Build and Push / build-and-push (15) (push) Successful in 4m44s
🚀 Docker Build and Push / build-and-push (16) (push) Successful in 4m48s
🚀 Docker Build and Push / build-and-push (17) (push) Successful in 4m47s
🚀 Docker Build and Push / build-and-push (18) (push) Successful in 4m36s
PostgreSQL 18+ Docker images changed the data directory structure to use
versioned subdirectories (e.g., /var/lib/postgresql/18/main) instead of
the traditional /var/lib/postgresql/data path.

Changes:
- Dockerfile: Add mkdir and chown to ensure /var/lib/postgresql has
  correct permissions for the postgres user before volume mount
- README.md: Update Quick Start with volume mount example
- README.md: Add 'Data Persistence' section explaining PG18+ requirements

This fixes the 'mkdir: cannot create directory: Permission denied' error
that occurred when mounting volumes at /var/lib/postgresql.

See: https://github.com/docker-library/postgres/pull/1259
2025-12-25 17:32:43 +01:00
maxime.killinger df585b765a feat: Add comprehensive test suite and cleanup step
🚀 Docker Build and Push / build-and-push (15) (push) Successful in 5m54s
🚀 Docker Build and Push / build-and-push (16) (push) Successful in 6m0s
🚀 Docker Build and Push / build-and-push (17) (push) Successful in 5m56s
🚀 Docker Build and Push / build-and-push (18) (push) Successful in 6m4s
- Split validation into 4 granular CI steps (Config, Timescale, Vector, Hybrid)
- Added cleanup step for Docker images in CI
- Created SQL test scripts in tests/ for robustness
2025-12-19 14:02:36 +01:00
maxime.killinger 4ea4132653 feat: PostgreSQL image with TimescaleDB, VectorChord, pgvector
🚀 Docker Build and Push / build-and-push (15) (push) Successful in 5m44s
🚀 Docker Build and Push / build-and-push (16) (push) Successful in 5m33s
🚀 Docker Build and Push / build-and-push (18) (push) Successful in 6m7s
🚀 Docker Build and Push / build-and-push (17) (push) Successful in 7m54s
- Multi-stage Dockerfile for optimized image size (676MB vs 2GB)
- Support for PostgreSQL 15, 16, 17, 18
- TimescaleDB 2.24.0, VectorChord 1.0.0, pgvector 0.8.1
- Auto-creation of extensions on first startup
- CI/CD with tests for all versions
- OCI labels and healthcheck included
2025-12-19 12:18:10 +01:00