From a0eb45ac0360ed806c1a547c22e2f2c23379743d Mon Sep 17 00:00:00 2001 From: vagrant user Date: Thu, 25 Dec 2025 00:07:17 +0100 Subject: [PATCH] 25/12/2025 --- centre_observabilite/loki-wal/00000204 | Bin 25616 -> 27635 bytes conteneur/Dockerfile | 69 +++++++++++++++--- .../configs/supervisord/supervisord.conf | 36 +++++++-- conteneur/database/schema.sql | 1 + conteneur/docker-compose.yml | 3 + 5 files changed, 93 insertions(+), 16 deletions(-) diff --git a/centre_observabilite/loki-wal/00000204 b/centre_observabilite/loki-wal/00000204 index cb0209fc507612296e3719e491b1f5018ce3f780..48cd60498da3ca4c5a0dced3ee69edbda139e113 100644 GIT binary patch delta 334 zcmbPmg7Ncp#ti}~8jOtd8vnU!vaqBjW~WNDc*eO#yi5rQO}fAo8}@(!0Tt!DCYFX~=9B-MmI*@?nj07y85o+H09C&EIC(y!2281mfuV_|sqy4} QW<`Q> /var/lib/postgresql/13/main/pg_hba.conf && \ + echo "listen_addresses='*'" >> /var/lib/postgresql/13/main/postgresql.conf + +# Copie des scripts SQL +COPY database/schema.sql /docker-entrypoint-initdb.d/01-schema.sql +COPY database/data.sql /docker-entrypoint-initdb.d/02-data.sql + +# Script pour créer la base de données et exécuter les scripts SQL +RUN echo '#!/bin/bash\n\ +echo "Waiting for PostgreSQL to start..."\n\ +for i in {1..30}; do\n\ + if su - postgres -c "psql -c \"SELECT 1;\"" >/dev/null 2>&1; then\n\ + echo "PostgreSQL is ready!"\n\ + break\n\ + fi\n\ + echo "Waiting... ($i/30)"\n\ + sleep 1\n\ +done\n\ +\n\ +echo "Creating database and user..."\n\ +su - postgres -c "psql -c \"SELECT 1 FROM pg_database WHERE datname = '\''archiweb_db'\''\" | grep -q 1 || psql -c \"CREATE DATABASE archiweb_db;\""\n\ +su - postgres -c "psql -c \"SELECT 1 FROM pg_roles WHERE rolname = '\''archiweb_user'\''\" | grep -q 1 || psql -c \"CREATE USER archiweb_user WITH PASSWORD '\''archiweb_password'\'';\""\n\ +su - postgres -c "psql -c \"GRANT ALL PRIVILEGES ON DATABASE archiweb_db TO archiweb_user;\""\n\ +su - postgres -c "psql -d archiweb_db -c \"GRANT ALL ON SCHEMA public TO archiweb_user;\""\n\ +\n\ +echo "Executing SQL scripts..."\n\ +if [ -f /docker-entrypoint-initdb.d/01-schema.sql ]; then\n\ + echo "Running schema.sql..."\n\ + su - postgres -c "psql -d archiweb_db -f /docker-entrypoint-initdb.d/01-schema.sql"\n\ +fi\n\ +\n\ +if [ -f /docker-entrypoint-initdb.d/02-data.sql ]; then\n\ + echo "Running data.sql..."\n\ + su - postgres -c "psql -d archiweb_db -f /docker-entrypoint-initdb.d/02-data.sql"\n\ +fi\n\ +\n\ +echo "Database setup complete!"' > /usr/local/bin/init-database.sh && \ +chmod +x /usr/local/bin/init-database.sh + # Copie des configurations -COPY configs/apache/httpd.conf /etc/apache2/sites-available/000-default.conf COPY configs/promtail/config.yaml /etc/promtail/config.yaml COPY configs/supervisord/supervisord.conf /etc/supervisor/conf.d/supervisord.conf -# Configuration Apache pour server-status +# Configuration Apache RUN echo '\n\ SetHandler server-status\n\ Require all granted\n\ @@ -66,12 +120,9 @@ RUN echo '\n\ ProxyPassReverse /api http://localhost:8080/api\n\ ' > /etc/apache2/sites-available/000-default.conf -# Création des répertoires de logs -RUN mkdir -p /var/log/apache2 /var/log/promtail /opt/tomcat/logs - -# Copie du WAR (à placer dans le contexte de build) +# Copie du WAR COPY archiweb-api-1.0.0.war /opt/tomcat/webapps/api.war -EXPOSE 80 8080 9100 9117 9080 +EXPOSE 80 8080 9100 9117 9080 5432 CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"] diff --git a/conteneur/configs/supervisord/supervisord.conf b/conteneur/configs/supervisord/supervisord.conf index 208735f..29a4b86 100644 --- a/conteneur/configs/supervisord/supervisord.conf +++ b/conteneur/configs/supervisord/supervisord.conf @@ -4,23 +4,44 @@ user=root logfile=/var/log/supervisor/supervisord.log pidfile=/var/run/supervisord.pid +[program:postgresql] +command=/usr/lib/postgresql/13/bin/postgres -D /var/lib/postgresql/13/main +user=postgres +autostart=true +autorestart=true +priority=1 +stdout_logfile=/var/log/postgresql/postgresql.log +stderr_logfile=/var/log/postgresql/postgresql-error.log +startsecs=5 +stopwaitsecs=30 + +[program:init-database] +command=/usr/local/bin/init-database.sh +autostart=true +autorestart=false +priority=5 +stdout_logfile=/var/log/postgresql/init-database.log +stderr_logfile=/var/log/postgresql/init-database-error.log +startsecs=0 + [program:apache2] command=/usr/sbin/apache2ctl -D FOREGROUND autostart=true autorestart=true stdout_logfile=/var/log/apache2/access.log stderr_logfile=/var/log/apache2/error.log -priority=1 +priority=10 +startsecs=5 [program:tomcat] -command=/opt/tomcat/bin/catalina.sh run +command=/bin/bash -c 'sleep 20 && /opt/tomcat/bin/catalina.sh run' environment=JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64",CATALINA_HOME="/opt/tomcat" autostart=true autorestart=true stdout_logfile=/opt/tomcat/logs/catalina.out stderr_logfile=/opt/tomcat/logs/catalina.out -priority=1 -startsecs=30 +priority=15 +startsecs=35 stopwaitsecs=30 [program:node_exporter] @@ -31,7 +52,8 @@ stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 -priority=2 +priority=20 +startsecs=5 [program:apache_exporter] command=/usr/local/bin/apache_exporter --scrape_uri=http://localhost/server-status?auto @@ -39,7 +61,7 @@ autostart=true autorestart=true stdout_logfile=/var/log/apache_exporter.log stderr_logfile=/var/log/apache_exporter_error.log -priority=2 +priority=20 startsecs=5 [program:promtail] @@ -48,5 +70,5 @@ autostart=true autorestart=true stdout_logfile=/var/log/promtail/promtail.log stderr_logfile=/var/log/promtail/promtail_error.log -priority=3 +priority=25 startsecs=5 diff --git a/conteneur/database/schema.sql b/conteneur/database/schema.sql index 65aa308..255f9fc 100644 --- a/conteneur/database/schema.sql +++ b/conteneur/database/schema.sql @@ -19,6 +19,7 @@ CREATE TABLE utilisateur nom VARCHAR(100), prenom VARCHAR(100), email VARCHAR(255), + token_reinitialisation VARCHAR(255), PRIMARY KEY (id), CONSTRAINT ux_u_login UNIQUE (login), CONSTRAINT ux_u_email UNIQUE (email) diff --git a/conteneur/docker-compose.yml b/conteneur/docker-compose.yml index 6c71153..1a03703 100644 --- a/conteneur/docker-compose.yml +++ b/conteneur/docker-compose.yml @@ -9,14 +9,17 @@ services: - "9117:9117" - "9101:9100" - "9080:9080" + - "5432:5432" volumes: - apache-logs:/var/log/apache2 + - postgres-data:/var/lib/postgresql/data networks: - centre_observabilite_observability restart: unless-stopped volumes: apache-logs: + postgres-data: networks: centre_observabilite_observability: