jdenis-insn
commited on
Commit
·
edaaf03
1
Parent(s):
6fed1c9
remove supervisord
Browse files- Dockerfile +10 -8
- 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 :
|
37 |
-
|
|
|
38 |
|
39 |
-
# Étape 10 :
|
|
|
|
|
|
|
40 |
USER user
|
41 |
|
42 |
-
# Étape
|
43 |
-
|
|
|
|
|
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
|