@@ -17,11 +17,10 @@ RUN --mount=type=cache,mode=0777,target=/root/.cache/pip \
1717 pip install -e . && \
1818 mkdir -p /app/src
1919
20+ COPY src /app/src
2021COPY tests/data /app/tests/data
21- COPY src/simdec /app/src/simdec
22- COPY app.py /app/app.py
23- # matplotlib cache
24- RUN mkdir -p /app/.config/matplotlib
22+ COPY panel /app/panel
23+ COPY docs/_static /app/_static
2524
2625# Step 3/3: Image
2726FROM base as panel
@@ -30,18 +29,24 @@ ENV PYTHONUNBUFFERED True
3029ENV PYTHONPATH=/app/src
3130ENV PYTHONIOENCODING=utf-8
3231ENV ENV=production
33- ENV PORT=8080
32+ ENV MPLCONFIGDIR=/tmp/matplotlib
33+ EXPOSE 8080
3434
3535ARG PANEL_TOKEN
36+ ENV PANEL_BASIC_AUTH=$PANEL_TOKEN
3637
3738COPY --from=builder /usr/local/lib/python3.11/site-packages/ /usr/local/lib/python3.11/site-packages/
3839COPY --from=builder /usr/local/bin/panel /usr/local/bin/panel
39- COPY --from=builder /app/src /app/src
40- COPY --from=builder /app/tests/data /app/tests/data
41- COPY --from=builder /app/app.py /app/app.py
40+ COPY --from=builder /app /app
4241
43- WORKDIR /app
4442RUN useradd app && usermod -a -G app app
4543USER app
44+ WORKDIR /app
45+
4646# Run the web service on container startup.
47- CMD panel serve app.py --address 0.0.0.0 --port $PORT --allow-websocket-origin="*" --basic-auth=$PANEL_TOKEN --num-procs 2 --cookie-secret my_super_safe_cookie_secret
47+ CMD ["panel" , "serve" , "panel/app.py" , \
48+ "--address" , "0.0.0.0" , "--port" , "8080" , "--num-procs" , "1" , "--allow-websocket-origin" , "*" , \
49+ "--cookie-secret" , "panel_cookie_secret" , \
50+ "--basic-login-template" , "panel/login.html" , \
51+ "--logout-template" , "panel/logout.html" , \
52+ "--static-dirs" , "_static=_static" ]
0 commit comments