sankar-raul/ICD-10-code-predictor-env
0
1ARG BASE_IMAGE=ghcr.io/meta-pytorch/openenv-base:latest2FROM ${BASE_IMAGE} AS builder3 4WORKDIR /app5 6RUN apt-get update && \7 apt-get install -y --no-install-recommends git && \8 rm -rf /var/lib/apt/lists/*9 10ARG BUILD_MODE=in-repo11ARG ENV_NAME=medical-coding-assistant12 13COPY . /app/env14WORKDIR /app/env15 16# If a host virtualenv slips into context, remove it so uv can create a valid Linux env.17RUN rm -rf .venv18 19RUN if ! command -v uv >/dev/null 2>&1; then \20 curl -LsSf https://astral.sh/uv/install.sh | sh && \21 mv /root/.local/bin/uv /usr/local/bin/uv && \22 mv /root/.local/bin/uvx /usr/local/bin/uvx; \23 fi24 25RUN --mount=type=cache,target=/root/.cache/uv \26 if [ -f uv.lock ]; then \27 uv sync --frozen --no-install-project --no-editable; \28 else \29 uv sync --no-install-project --no-editable; \30 fi31 32RUN --mount=type=cache,target=/root/.cache/uv \33 if [ -f uv.lock ]; then \34 uv sync --frozen --no-editable; \35 else \36 uv sync --no-editable; \37 fi38 39FROM ${BASE_IMAGE}40 41WORKDIR /app42 43COPY --from=builder /app/env/.venv /app/.venv44COPY --from=builder /app/env /app/env45 46ENV PATH="/app/.venv/bin:$PATH"47ENV PYTHONPATH="/app/env:$PYTHONPATH"48 49HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \50 CMD curl -f http://localhost:8000/health || exit 151 52CMD ["sh", "-c", "cd /app/env && uvicorn server.app:app --host 0.0.0.0 --port 8000"]