jdenis-insn commited on
Commit
edaaf03
·
1 Parent(s): 6fed1c9

remove supervisord

Browse files
Files changed (2) hide show
  1. Dockerfile +10 -8
  2. start_services.sh +49 -0
Dockerfile CHANGED
@@ -1,9 +1,8 @@
1
- # Étape 1 : Image de base et installation des dépendances système
2
  FROM python:3.12-slim as base
3
 
 
4
  RUN apt-get update && apt-get install -y \
5
  nginx \
6
- supervisor \
7
  curl \
8
  && rm -rf /var/lib/apt/lists/*
9
 
@@ -20,7 +19,6 @@ COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
20
 
21
  # Étape 5 : Copie des fichiers de configuration avec les permissions appropriées
22
  COPY --chown=user:user nginx.conf /etc/nginx/nginx.conf
23
- COPY --chown=user:user supervisord.conf /etc/supervisor/conf.d/supervisord.conf
24
 
25
  # Étape 6 : Copie des fichiers de l'application avec les permissions appropriées
26
  COPY --chown=user:user . $HOME/app
@@ -33,11 +31,15 @@ RUN uv sync --no-dev --frozen --no-cache
33
  RUN curl -fsSL https://github.com/qdrant/qdrant/releases/latest/download/qdrant-linux-x86_64 -o /usr/local/bin/qdrant \
34
  && chmod +x /usr/local/bin/qdrant
35
 
36
- # Étape 9 : Exposition des ports nécessaires
37
- EXPOSE 8080 6333
 
38
 
39
- # Étape 10 : Changement de l'utilisateur pour 'user'
 
 
 
40
  USER user
41
 
42
- # Étape 11 : Lancement de l'application avec supervisord
43
- CMD ["supervisord", "-n", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
 
 
1
  FROM python:3.12-slim as base
2
 
3
+ # Étape 1 : Installation des dépendances système
4
  RUN apt-get update && apt-get install -y \
5
  nginx \
 
6
  curl \
7
  && rm -rf /var/lib/apt/lists/*
8
 
 
19
 
20
  # Étape 5 : Copie des fichiers de configuration avec les permissions appropriées
21
  COPY --chown=user:user nginx.conf /etc/nginx/nginx.conf
 
22
 
23
  # Étape 6 : Copie des fichiers de l'application avec les permissions appropriées
24
  COPY --chown=user:user . $HOME/app
 
31
  RUN curl -fsSL https://github.com/qdrant/qdrant/releases/latest/download/qdrant-linux-x86_64 -o /usr/local/bin/qdrant \
32
  && chmod +x /usr/local/bin/qdrant
33
 
34
+ # Étape 9 : Copie du script d'initialisation
35
+ COPY --chown=user:user start_services.sh /usr/local/bin/start_services.sh
36
+ RUN chmod +x /usr/local/bin/start_services.sh
37
 
38
+ # Étape 10 : Exposition des ports nécessaires
39
+ EXPOSE 8080 6333 8000 8501
40
+
41
+ # Étape 11 : Changement de l'utilisateur pour 'user'
42
  USER user
43
 
44
+ # Étape 12 : Définition du point d'entrée
45
+ ENTRYPOINT ["/usr/local/bin/start_services.sh"]
start_services.sh ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+ set -e
3
+
4
+ # Démarrer Nginx
5
+ echo "Démarrage de Nginx..."
6
+ nginx -g "daemon off;" &
7
+ NGINX_PID=$!
8
+
9
+ # Démarrer Qdrant
10
+ echo "Démarrage de Qdrant..."
11
+ /usr/local/bin/qdrant &
12
+ QDRANT_PID=$!
13
+
14
+ # Démarrer le Backend
15
+ echo "Démarrage du Backend..."
16
+ cd /home/user/app/backend
17
+ uv sync
18
+ uv run fastapi app.main:app --host 0.0.0.0 --port 8000 &
19
+ BACKEND_PID=$!
20
+
21
+ # Démarrer le Frontend
22
+ echo "Démarrage du Frontend..."
23
+ cd /home/user/app/frontend
24
+ uv sync
25
+ uv run streamlit run app/main.py --server.port 8501 --server.address=0.0.0.0 &
26
+ FRONTEND_PID=$!
27
+
28
+ # Fonction pour gérer la terminaison des processus
29
+ terminate_processes() {
30
+ echo "Arrêt des services..."
31
+ kill -TERM $NGINX_PID
32
+ kill -TERM $QDRANT_PID
33
+ kill -TERM $BACKEND_PID
34
+ kill -TERM $FRONTEND_PID
35
+ wait $NGINX_PID
36
+ wait $QDRANT_PID
37
+ wait $BACKEND_PID
38
+ wait $FRONTEND_PID
39
+ echo "Services arrêtés."
40
+ }
41
+
42
+ # Capturer les signaux d'arrêt pour nettoyer correctement
43
+ trap terminate_processes SIGTERM SIGINT
44
+
45
+ # Attendre que les processus se terminent
46
+ wait $NGINX_PID
47
+ wait $QDRANT_PID
48
+ wait $BACKEND_PID
49
+ wait $FRONTEND_PID