# ========================================== # OMNIGROUP - POSTGRESQL CLOUD SOUVERAIN # Infrastructure de Données de Haute Performance # Spécial Hugging Face Spaces + Persistence # Fix : Permission Override au Runtime # ========================================== FROM postgres:16-bookworm USER root # 1. Configuration Environnementale ENV DEBIAN_FRONTEND=noninteractive \ POSTGRES_DB=nextcloud \ POSTGRES_USER=madiba_admin \ # On utilise un sous-dossier pour éviter de toucher à la racine de /data PGDATA=/data/postgres_storage/pgdata # 2. Configuration pour Hugging Face Spaces (Port 7860) RUN sed -i "s/#port = 5432/port = 7860/" /usr/share/postgresql/postgresql.conf.sample # 3. Préparation des répertoires système RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql && chmod 2777 /var/run/postgresql # 4. Script d'Entrée "Souverain" (Exécuté en ROOT) RUN echo '#!/bin/bash\n\ set -e\n\ \n\ echo "[OMNIGROUP] Stabilisation des permissions du volume..." \n\ \n\ # Création et attribution du dossier de données au runtime\n\ mkdir -p /data/postgres_storage/pgdata\n\ chown -R postgres:postgres /data\n\ chmod -R 700 /data/postgres_storage\n\ \n\ echo "[SYSTEM] Passage à l utilisateur postgres et démarrage sur le port 7860..." \n\ \n\ # On utilise exec avec gosu (préinstallé dans l image postgres officielle) \n\ # pour lancer le point d entrée officiel en tant qu utilisateur postgres\n\ exec gosu postgres docker-entrypoint.sh postgres -p 7860' > /usr/local/bin/run_postgres.sh && \ chmod +x /usr/local/bin/run_postgres.sh # 5. On reste en ROOT pour le démarrage afin de pouvoir gérer /data USER root EXPOSE 7860 ENTRYPOINT ["/usr/local/bin/run_postgres.sh"]