README: add Versioning (unified SemVer, pre-releases, build metadata); emphasize UTC handling and streaming endpoint; add Dev Container notes (UI-only Remote Containers, npm ci, idempotent aliases) TECH-CHANGELOG: backend rework notes (serialization camelCase, UTC normalization, streaming metadata); add component build metadata template (image tags/SHAs) Copilot instructions: integrate maintenance guardrails; reinforce UTC and camelCase conventions; document MQTT topics and scheduler retained payload behavior Devcontainer: map Remote Containers to UI; remove in-container install; switch to npm ci; make aliases idempotent
43 lines
1.7 KiB
Docker
43 lines
1.7 KiB
Docker
# Datei: server/Dockerfile.dev
|
|
# 🔧 OPTIMIERT: Für die Entwicklung im Dev-Container
|
|
# ==========================================
|
|
|
|
FROM python:3.13-slim
|
|
|
|
# Die Erstellung des non-root Users und die Locale-Konfiguration
|
|
# sind für den Dev-Container nicht zwingend nötig, da VS Code sich als 'root'
|
|
# verbindet (gemäß devcontainer.json). Sie schaden aber nicht.
|
|
ARG USER_ID=1000
|
|
ARG GROUP_ID=1000
|
|
RUN apt-get update && apt-get install -y --no-install-recommends locales curl git docker.io \
|
|
&& groupadd -g ${GROUP_ID} infoscreen_taa \
|
|
&& useradd -u ${USER_ID} -g ${GROUP_ID} --shell /bin/bash --create-home infoscreen_taa \
|
|
&& sed -i 's/# de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/' /etc/locale.gen \
|
|
&& locale-gen \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
ENV LANG=de_DE.UTF-8 \
|
|
LC_ALL=de_DE.UTF-8
|
|
|
|
# Setze das Arbeitsverzeichnis auf den Workspace-Root, passend zu den Mounts.
|
|
WORKDIR /app
|
|
|
|
# Kopiere die Anforderungsdateien in das korrekte Unterverzeichnis.
|
|
# ✅ KORRIGIERT: Pfade sind jetzt relativ zum Build-Kontext (dem 'server'-Verzeichnis)
|
|
COPY server/requirements.txt server/requirements-dev.txt ./server/
|
|
|
|
# Installiere die Python-Abhängigkeiten
|
|
RUN pip install --upgrade pip \
|
|
&& pip install --no-cache-dir -r server/requirements.txt \
|
|
&& pip install --no-cache-dir -r server/requirements-dev.txt
|
|
|
|
# Das Kopieren des Codes ist nicht nötig, da das Verzeichnis gemountet wird.
|
|
|
|
# Exponiere die Ports für die Flask API und den Debugger
|
|
EXPOSE 8000 5678
|
|
|
|
# Der Startbefehl wird in der docker-compose.override.yml definiert.
|
|
# Ein Standard-CMD dient als Fallback.
|
|
CMD ["python", "-m", "debugpy", "--listen", "0.0.0.0:5678", "-m", "flask", "run", "--host=0.0.0.0", "--port=8000"]
|
|
|