| FROM python:3.13-slim | |
| ENV PYTHONDONTWRITEBYTECODE=1 \ | |
| PYTHONUNBUFFERED=1 \ | |
| PIP_NO_CACHE_DIR=1 \ | |
| UV_LINK_MODE=copy \ | |
| STREAMLIT_SERVER_HEADLESS=true \ | |
| STREAMLIT_SERVER_PORT=7860 \ | |
| STREAMLIT_SERVER_ADDRESS=0.0.0.0 | |
| ARG APP_REPO=https://github.com/giorginolab/pkaScope.git | |
| ARG APP_COMMIT=a01123d95d79122e8bf9ec0b45bd4dd4c7698cdf | |
| RUN apt-get update \ | |
| && apt-get install --yes --no-install-recommends git \ | |
| && rm -rf /var/lib/apt/lists/* | |
| RUN python -m pip install --no-cache-dir uv | |
| WORKDIR /opt | |
| RUN git clone "${APP_REPO}" app \ | |
| && cd app \ | |
| && git checkout "${APP_COMMIT}" \ | |
| && git submodule update --init --recursive | |
| WORKDIR /opt/app | |
| RUN uv sync --frozen --no-dev | |
| ENV PATH="/opt/app/.venv/bin:${PATH}" | |
| EXPOSE 7860 | |
| HEALTHCHECK CMD python -c "import urllib.request; urllib.request.urlopen('http://127.0.0.1:7860/_stcore/health').read()" | |
| CMD ["streamlit", "run", "main.py", "--server.port=7860", "--server.address=0.0.0.0"] | |