Spaces:
Sleeping
Sleeping
| FROM debian:bookworm-slim | |
| WORKDIR /app | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| bash ca-certificates clang curl git libgmp-dev nodejs npm \ | |
| && rm -rf /var/lib/apt/lists/* | |
| RUN npm install -g tsx typescript | |
| RUN curl -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal \ | |
| && /root/.cargo/bin/rustup default stable \ | |
| && /root/.cargo/bin/cargo --version | |
| RUN curl -sSf https://raw.githubusercontent.com/leanprover/elan/master/elan-init.sh \ | |
| | sh -s -- -y --default-toolchain none | |
| COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/ | |
| ENV PATH="/root/.cargo/bin:/root/.elan/bin:$PATH" \ | |
| LEAN_BIN=/root/.elan/bin/lean \ | |
| LEAN_CWD=/app/env/lean \ | |
| LEAN_PATH=/app/env/lean/.lake/build/lib \ | |
| PYTHONPATH=/app/env \ | |
| UV_LINK_MODE=copy \ | |
| UV_COMPILE_BYTECODE=1 | |
| COPY lean/lean-toolchain /app/env/lean/lean-toolchain | |
| RUN elan default "$(cat /app/env/lean/lean-toolchain)" \ | |
| && lean --version | |
| COPY . /app/env | |
| WORKDIR /app/env/lean | |
| RUN lake build AuthSpec PricingSpec SagaSpec | |
| WORKDIR /app/env | |
| RUN uv sync --locked | |
| ENV PATH="/app/env/.venv/bin:/root/.cargo/bin:/root/.elan/bin:$PATH" \ | |
| VIRTUAL_ENV=/app/env/.venv | |
| EXPOSE 8000 | |
| HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ | |
| CMD curl -f http://localhost:8000/health || exit 1 | |
| ENV ENABLE_WEB_INTERFACE=true | |
| CMD ["sh", "-c", "cd /app/env && uv run uvicorn lean_migrate.server.app:app --host 0.0.0.0 --port 8000"] | |