diff --git a/backend/Dockerfile b/backend/Dockerfile index ec663f0..71ce34e 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -42,17 +42,9 @@ COPY . . # Permissions RUN chmod -R 755 /app +RUN chmod +x entrypoint.sh EXPOSE 8000 -# Hot-reload + respect des en-têtes proxy (utile si tu testes derrière Traefik en dev) -# Astuce: on exclut uploads/logs du reload pour éviter les restarts inutiles -CMD ["uvicorn", "app:app", \ - "--reload", \ - "--reload-exclude", "uploads/*", \ - "--reload-exclude", "logs/*", \ - "--host", "0.0.0.0", \ - "--port", "8000", \ - "--log-level", "debug", \ - "--proxy-headers", \ - "--forwarded-allow-ips=*"] +# Lancer les migrations puis démarrer l'application +CMD ["./entrypoint.sh"] diff --git a/backend/entrypoint.sh b/backend/entrypoint.sh new file mode 100644 index 0000000..9ab3803 --- /dev/null +++ b/backend/entrypoint.sh @@ -0,0 +1,30 @@ +#!/bin/bash +set -e + +echo "Running database migrations..." +alembic upgrade head + +echo "Starting application..." + +# Détecter l'environnement (production ou développement) +if [ "$ENVIRONMENT" = "production" ]; then + echo "Running in production mode..." + exec uvicorn app:app \ + --host 0.0.0.0 \ + --port 8000 \ + --log-level info \ + --proxy-headers \ + --forwarded-allow-ips=* +else + echo "Running in development mode..." + exec uvicorn app:app \ + --reload \ + --reload-exclude "uploads/*" \ + --reload-exclude "logs/*" \ + --host 0.0.0.0 \ + --port 8000 \ + --log-level debug \ + --proxy-headers \ + --forwarded-allow-ips=* +fi +