FROM python:3.13-slim AS base COPY --from=ghcr.io/astral-sh/uv:0.12 /uv /uvx /usr/local/bin/ ENV UV_COMPILE_BYTECODE=1 UV_LINK_MODE=copy UV_NO_CACHE=1 UV_PROJECT_ENVIRONMENT=/opt/venv PATH=/opt/venv/bin:$PATH WORKDIR /app COPY pyproject.toml uv.lock ./ RUN uv sync --locked --no-dev --no-install-project COPY . . RUN uv sync --locked --no-dev FROM base AS check RUN uv sync --locked && uv run pytest && uvx ruff==0.14.14 check --select F,E9,B src tests FROM base AS runtime ENV PLAYWRIGHT_BROWSERS_PATH=/opt/ms-playwright RUN playwright install --with-deps --only-shell chromium ARG APP_VERSION=source ARG APP_COMMIT=unknown ENV APP_VERSION=$APP_VERSION APP_COMMIT=$APP_COMMIT LABEL org.opencontainers.image.version=$APP_VERSION org.opencontainers.image.revision=$APP_COMMIT LABEL org.opencontainers.image.source=https://git.134333.xyz/eezd/AlphaPulse