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
|