From f4185a5d80f4a63908094450c2e8160622724f75 Mon Sep 17 00:00:00 2001 From: Damien Arnodo Date: Sat, 31 Jan 2026 11:00:03 +0000 Subject: [PATCH 1/2] feat: add prefect worker image for PostgreSQL backups --- images/prefect-worker-pg-backup/Dockerfile | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 images/prefect-worker-pg-backup/Dockerfile diff --git a/images/prefect-worker-pg-backup/Dockerfile b/images/prefect-worker-pg-backup/Dockerfile new file mode 100644 index 0000000..ec2788c --- /dev/null +++ b/images/prefect-worker-pg-backup/Dockerfile @@ -0,0 +1,31 @@ +# ============================================================================= +# Prefect Worker - PostgreSQL Backup +# +# Image Docker pour un worker Prefect dédié aux sauvegardes PostgreSQL +# Inclut les outils nécessaires pour dump PG et upload vers S3 (Garage) +# ============================================================================= + +FROM prefecthq/prefect:3-python3.12 + +LABEL maintainer="Damien Arnodo" +LABEL org.opencontainers.image.title="Prefect Worker - PostgreSQL Backup" +LABEL org.opencontainers.image.description="Prefect worker with PostgreSQL and S3 tools for database backups" + +# Installation des outils PostgreSQL (pg_dump, pg_restore, etc.) +RUN apt-get update && apt-get install -y --no-install-recommends \ + postgresql-client \ + && rm -rf /var/lib/apt/lists/* + +# Installation des dépendances Python pour S3 et PostgreSQL +RUN pip install --no-cache-dir \ + boto3 \ + psycopg2-binary + +# Création d'un utilisateur non-root +RUN useradd -m -u 1000 prefect +USER prefect + +WORKDIR /app + +# Le worker sera démarré via la commande dans docker-compose +# CMD ["prefect", "worker", "start", "--pool", "my-pool"] From dfb4b5a7d3d948d8ab0972cca45881b0657efb63 Mon Sep 17 00:00:00 2001 From: Damien Arnodo Date: Sat, 31 Jan 2026 11:00:12 +0000 Subject: [PATCH 2/2] docs: add README for prefect-worker-pg-backup image --- images/prefect-worker-pg-backup/README.md | 38 +++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 images/prefect-worker-pg-backup/README.md diff --git a/images/prefect-worker-pg-backup/README.md b/images/prefect-worker-pg-backup/README.md new file mode 100644 index 0000000..091857a --- /dev/null +++ b/images/prefect-worker-pg-backup/README.md @@ -0,0 +1,38 @@ +# Prefect Worker - PostgreSQL Backup + +Image Docker pour un worker Prefect dédié aux sauvegardes de bases de données PostgreSQL vers un stockage S3-compatible (Garage). + +## Contenu + +- **Base** : `prefecthq/prefect:3-python3.12` +- **Outils PostgreSQL** : `pg_dump`, `pg_restore`, `psql` +- **Python** : `boto3`, `psycopg2-binary` + +## Utilisation + +### Dans docker-compose + +```yaml +prefect-worker: + image: gitea.arnodo.fr/damien/prefect-worker-pg-backup:latest + environment: + - PREFECT_API_URL=http://prefect-server:4200/api + command: prefect worker start --pool pg-backup-pool --type process + depends_on: + - prefect-server +``` + +### Variables d'environnement requises pour les flows + +| Variable | Description | +|----------|-------------| +| `PREFECT_API_URL` | URL de l'API Prefect | +| `AWS_ACCESS_KEY_ID` | Clé d'accès S3 (Garage) | +| `AWS_SECRET_ACCESS_KEY` | Secret S3 (Garage) | +| `AWS_ENDPOINT_URL` | Endpoint S3 (ex: `https://s3.garage.example.com`) | + +## Build local + +```bash +docker build -t prefect-worker-pg-backup:latest images/prefect-worker-pg-backup/ +```