Build and Publish Site / docker (push) Successful in 23s
ABER: Die Applikation funktioniert nur lokal. Die deployte Version geht noch nicht.
57 lines
1.3 KiB
Docker
57 lines
1.3 KiB
Docker
# ==========================================
|
|
# STAGE 1: Der Builder (Hier wird kompiliert)
|
|
# ==========================================
|
|
FROM nodered/node-red:latest AS builder
|
|
USER root
|
|
|
|
# Compiler installieren
|
|
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
|
|
# ================================================
|
|
FROM nodered/node-red:latest
|
|
USER root
|
|
|
|
# Nur Laufzeitumgebung installieren
|
|
RUN apk add --no-cache \
|
|
python3 \
|
|
py3-pip \
|
|
tzdata
|
|
|
|
# Python-Pakete aus der Builder-Stage übernehmen
|
|
COPY --from=builder /opt/python-packages /opt/python-packages
|
|
|
|
# Python-Pfad erweitern
|
|
ENV PYTHONPATH="/opt/python-packages"
|
|
|
|
# Node-RED-Daten kopieren
|
|
COPY node-red-data/ /data/
|
|
|
|
# Eigene Skripte kopieren
|
|
COPY scripts/ /data/scripts/
|
|
|
|
# Startscript kopieren und ausführbar machen
|
|
COPY start.sh /usr/local/bin/start.sh
|
|
RUN chmod +x /usr/local/bin/start.sh
|
|
|
|
# Zurück zum sicheren Standard-User
|
|
USER node-red
|
|
|
|
# Eigenes Startscript verwenden
|
|
ENTRYPOINT ["/usr/local/bin/start.sh"]
|