madibaalbert commited on
Commit
69b53b7
·
verified ·
1 Parent(s): a59b3b3

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +50 -0
Dockerfile ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # ==========================================
2
+ # OMNIGROUP - POSTGRESQL CLOUD SOUVERAIN
3
+ # Infrastructure de Données de Haute Performance
4
+ # Spécial Hugging Face Spaces + Persistence
5
+ # ==========================================
6
+
7
+ FROM postgres:16-bookworm
8
+
9
+ USER root
10
+
11
+ # 1. Configuration Environnementale
12
+ ENV DEBIAN_FRONTEND=noninteractive \
13
+ POSTGRES_DB=nextcloud \
14
+ POSTGRES_USER=madiba_admin \
15
+ # Le mot de passe sera injecté via les secrets HF : POSTGRES_PASSWORD
16
+ PGDATA=/var/lib/postgresql/data/pgdata
17
+
18
+ # 2. Configuration pour Hugging Face Spaces (Port 7860 exigé)
19
+ # PostgreSQL écoute par défaut sur 5432, on le redirige
20
+ RUN sed -i "s/#port = 5432/port = 7860/" /usr/share/postgresql/postgresql.conf.sample
21
+
22
+ # 3. Préparation du volume persistant
23
+ # Sur HF, le stockage persistant est monté sur /data
24
+ RUN mkdir -p /data/postgres_storage && \
25
+ chown -R postgres:postgres /data/postgres_storage && \
26
+ chmod 700 /data/postgres_storage
27
+
28
+ # 4. Script d'Initialisation Spécial OmniGroup
29
+ RUN echo '#!/bin/bash\n\
30
+ set -e\n\
31
+ \n\
32
+ echo "[OMNIGROUP] Initialisation du moteur PostgreSQL..." \n\
33
+ \n\
34
+ # On redirige le stockage vers le volume persistant de HF\n\
35
+ export PGDATA="/data/postgres_storage/pgdata"\n\
36
+ \n\
37
+ # Si la base n existe pas, postgres l initialisera automatiquement dans PGDATA\n\
38
+ echo "[SYSTEM] Démarrage de PostgreSQL sur le port 7860..." \n\
39
+ exec docker-entrypoint.sh postgres -p 7860' > /usr/local/bin/run_postgres.sh && \
40
+ chmod +x /usr/local/bin/run_postgres.sh
41
+
42
+ # 5. Sécurité et Permissions
43
+ # Postgres refuse de démarrer en tant que root, on bascule sur l utilisateur dédié
44
+ RUN chown -R postgres:postgres /var/run/postgresql
45
+
46
+ USER postgres
47
+
48
+ EXPOSE 7860
49
+
50
+ ENTRYPOINT ["/usr/local/bin/run_postgres.sh"]