Le viser de demo.py était tué dès que le PLY était écrit (pour libérer la VRAM),
donc les liens dans le dashboard menaient vers ERR_CONNECTION_REFUSED.
Ajout d'un viewer standalone indépendant :
- scripts/viser_ply.py : charge un PLY via open3d + sert via viser (sans GPU),
subsample random à 2M pts max pour rester fluide
- app/main.py : routes POST /jobs/{id}/view et /stitches/{id}/view qui scp
le script sur le worker et lancent un viser détaché (nohup+setsid+disown via
wrapper shell déposé sur le worker)
- templates : remplace <a href> par <button class=viewer-btn> qui POST puis
window.open de l'URL retournée
- Dockerfile : copie scripts/ dans l'image (nécessaire pour scp-er viser_ply.py)
21 lines
606 B
Docker
21 lines
606 B
Docker
FROM python:3.12-slim
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends openssh-client && rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /app
|
|
|
|
RUN pip install --no-cache-dir \
|
|
fastapi==0.115.12 \
|
|
"uvicorn[standard]==0.34.0" \
|
|
jinja2==3.1.6 \
|
|
python-multipart==0.0.20
|
|
|
|
COPY app/ ./app/
|
|
COPY scripts/ ./scripts/
|
|
|
|
ENV COSMA_QC_DB=/var/lib/cosma-qc/jobs.db
|
|
|
|
EXPOSE 8000
|
|
|
|
CMD ["/bin/sh", "-c", "if [ -d /ssh-in ]; then mkdir -p /root/.ssh && cp -r /ssh-in/. /root/.ssh/ && chmod 700 /root/.ssh && chmod 600 /root/.ssh/* 2>/dev/null; fi && uvicorn app.main:app --host 0.0.0.0 --port 8000"]
|