@@ -5,14 +5,32 @@ FROM python:3.12-alpine as base
55FROM base as builder
66# Allow statements and log messages to immediately appear in the Knative logs
77ENV PYTHONUNBUFFERED=True
8+ ENV PYTHONDONTWRITEBYTECODE=true
89
910COPY pyproject.toml README.md /
1011
1112RUN --mount=type=cache,mode=0777,target=/root/.cache/pip \
1213 pip install --upgrade pip setuptools wheel && \
13- pip install -e ".[dashboard]" && \
14- mkdir -p /app/src
14+ pip install -e ".[dashboard]"
1515
16+ RUN find /usr/local/lib/python3.12/site-packages -name "test" -depth -type d -exec rm -rf '{}' \;
17+ RUN find /usr/local/lib/python3.12/site-packages -name "tests" -depth -type d -exec rm -rf '{}' \;
18+ RUN find /usr/local/lib/python3.12/site-packages -name "docs" -depth -type d -exec rm -rf '{}' \;
19+ RUN find . -type f -name '*.py[co]' -delete -o -type d -name __pycache__ -delete
20+
21+ RUN rm -rf /usr/local/lib/python3.12/site-packages/panel/dist/bundled/deckglplot
22+ RUN rm -rf /usr/local/lib/python3.12/site-packages/panel/dist/bundled/abstractvtkplot
23+ RUN rm -rf /usr/local/lib/python3.12/site-packages/panel/dist/bundled/aceplot
24+ RUN rm -rf /usr/local/lib/python3.12/site-packages/panel/dist/bundled/bootstrap5
25+ RUN rm -rf /usr/local/lib/python3.12/site-packages/panel/dist/bundled/plotlyplot
26+ RUN rm -rf /usr/local/lib/python3.12/site-packages/panel/dist/bundled/bootstrap4
27+
28+ # stats depends on spatial, special, sparse, linalg, ndimage, fft
29+ RUN rm -rf /usr/local/lib/python3.12/site-packages/scipy/signal
30+ RUN rm -rf /usr/local/lib/python3.12/site-packages/scipy/misc
31+ RUN rm -rf /usr/local/lib/python3.12/site-packages/scipy/cluster
32+
33+ RUN mkdir -p /app/src
1634COPY src /app/src
1735COPY tests/data /app/tests/data
1836COPY panel /app/panel
@@ -22,6 +40,7 @@ COPY docs/_static /app/_static
2240FROM base as panel
2341# Allow statements and log messages to immediately appear in the Knative logs
2442ENV PYTHONUNBUFFERED=True
43+ ENV PYTHONDONTWRITEBYTECODE=true
2544ENV PYTHONPATH=/app/src
2645ENV PYTHONIOENCODING=utf-8
2746ENV MPLCONFIGDIR=/tmp/matplotlib
@@ -31,6 +50,12 @@ COPY --from=builder /usr/local/lib/python3.12/site-packages/ /usr/local/lib/pyth
3150COPY --from=builder /usr/local/bin/panel /usr/local/bin/panel
3251COPY --from=builder /app /app
3352
53+ # Basic security hardening
54+ RUN rm -rf /usr/local/lib/python3.12/site-packages/pip
55+ RUN rm -rf /usr/local/lib/python3.12/site-packages/wheel
56+ RUN rm -rf /usr/local/lib/python3.12/site-packages/setuptools
57+ RUN apk --purge del apk-tools
58+
3459RUN addgroup -S app && adduser -S app -G app
3560
3661USER app
0 commit comments