Files
ArchiveCostWebapp/logic/Dockerfile
T
huesser 97a22cf704
Build and Publish Site / docker (push) Successful in 18s
Da man auf dem "Containerserver" keine secrets braucht, sondern mit .env gearbeitet wird,
habe ich den entsprechenden Code geloescht.
2026-07-02 15:19:18 +02:00

42 lines
1.4 KiB
Docker

# ==========================================
# STAGE 1: Der Builder (Hier wird kompiliert)
# ==========================================
FROM nodered/node-red:latest AS builder
USER root
# Compiler installieren, die Scout bemängelt
RUN apk add --no-cache python3 py3-pip python3-dev gcc g++ musl-dev libffi-dev
# Python-Pakete in einen separaten Ordner installieren
RUN pip3 install --no-cache-dir --break-system-packages --target=/opt/python-packages \
pandas \
numpy \
ldap3
# ================================================
# STAGE 2: Das finale, saubere Image
# gcc, ... wird nicht in das finale Image kopiert.
# ================================================
FROM nodered/node-red:latest
USER root
# NUR die Laufzeitumgebung installieren (KEIN gcc, KEIN g++, KEIN musl-dev!)
RUN apk add --no-cache python3 py3-pip tzdata
# Die fertig kompilierten Pakete aus Stage 1 an einen stabilen Ort kopieren
COPY --from=builder /opt/python-packages /opt/python-packages
# Den neuen Paket-Ordner zum PYTHONPATH hinzufügen
ENV PYTHONPATH="/opt/python-packages"
# Für globale npm-Installationen im Container bleiben wir kurz root,
# übergeben aber das Node-RED-Verzeichnis als Zielpfad
WORKDIR /usr/src/node-red
RUN npm install --no-update-notifier \
node-red-contrib-moment \
node-red-contrib-cron-plus \
passport-ldapauth
# Zurück zum sicheren Standard-User von Node-RED für den laufenden Betrieb
USER node-red