From 5c6a3b897e868efb8eb304ac429a7a6100c1743c Mon Sep 17 00:00:00 2001 From: Emre Gezer <21geem1bif@hft-stuttgart.de> Date: Sat, 19 Apr 2025 11:15:56 +0200 Subject: [PATCH] Added Dockerfiles and compose so we can start the project with docker compose up --build modified urls.py sim->app --- backend/Dockerfile | 29 +++++++++++++++++++++++++++++ backend/app/views.py | 4 ++-- backend/core/urls.py | 2 +- backend/requirements.txt | 0 docker-compose.yml | 18 ++++++++++++++++++ frontend/Dockerfile | 13 +++++++++++++ 6 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 backend/Dockerfile create mode 100644 backend/requirements.txt create mode 100644 docker-compose.yml create mode 100644 frontend/Dockerfile diff --git a/backend/Dockerfile b/backend/Dockerfile new file mode 100644 index 0000000..6d05560 --- /dev/null +++ b/backend/Dockerfile @@ -0,0 +1,29 @@ +# Verwende das neueste Python-Image +FROM python:latest + +# Setze das Arbeitsverzeichnis im Container +WORKDIR /app + +# Kopiere die pyproject.toml und uv.lock-Dateien +COPY pyproject.toml . +COPY uv.lock . + +# Kopiere auch requirements.txt, falls vorhanden +COPY requirements.txt . + +# Installiere uv und die Abhängigkeiten +RUN pip install --upgrade pip && \ + pip install uv && \ + pip install --no-cache-dir -r requirements.txt + +# Kopiere den Rest des Projekts in den Container +COPY . . + +# Setze Umgebungsvariablen, falls nötig +ENV PYTHONUNBUFFERED 1 + +# Exponiere den Port 8000 für den Server +EXPOSE 8000 + +# Der Startbefehl: Starte den Server mit uv +CMD ["uv", "run", "python", "manage.py", "runserver", "0.0.0.0:8000"] diff --git a/backend/app/views.py b/backend/app/views.py index 4aeec7f..7bff2a9 100644 --- a/backend/app/views.py +++ b/backend/app/views.py @@ -32,7 +32,7 @@ def login_view(request): user = authenticate(request, username=email, password=password) if user: - login(request, user) + login(request, user) # also creates a session in the browser return JsonResponse({"success": True}) return JsonResponse( {"success": False, "message": "Invalid credentials"}, status=401 @@ -40,7 +40,7 @@ def login_view(request): def logout_view(request): - logout(request) + logout(request) return JsonResponse({"message": "Logged out"}) diff --git a/backend/core/urls.py b/backend/core/urls.py index 8e18b6f..8d12f2b 100644 --- a/backend/core/urls.py +++ b/backend/core/urls.py @@ -20,5 +20,5 @@ from django.urls import path, include urlpatterns = [ path("admin/", admin.site.urls), - path("", include("sim.urls")), + path("", include("app.urls")), ] diff --git a/backend/requirements.txt b/backend/requirements.txt new file mode 100644 index 0000000..e69de29 diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..f7b96d0 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,18 @@ +version: '3.9' + +services: + backend: + build: ./backend + ports: + - "8000:8000" + volumes: + - ./backend:/app + + frontend: + build: ./frontend + ports: + - "5173:5173" + volumes: + - ./frontend:/app + stdin_open: true + tty: true diff --git a/frontend/Dockerfile b/frontend/Dockerfile new file mode 100644 index 0000000..7e7ab91 --- /dev/null +++ b/frontend/Dockerfile @@ -0,0 +1,13 @@ +# frontend/Dockerfile + +FROM node:20 +WORKDIR /app + +# Nur lokale Abhängigkeiten, kein globales Vite! +COPY package*.json ./ +RUN npm install + +COPY . . + +EXPOSE 5173 +CMD ["npx", "vite", "--host"] -- GitLab