FROM python:3.12-slim WORKDIR /app # Install uv COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv # Install dependencies before copying full source (layer caching) COPY pyproject.toml uv.lock* ./ RUN uv sync --frozen --no-dev 2>/dev/null || uv sync --no-dev # Copy application source COPY . . # Make the venv's binaries available on PATH ENV PATH="/app/.venv/bin:$PATH" ENV DAGSTER_HOME=/app/dagster_home RUN chmod +x /app/entrypoint.sh ENTRYPOINT ["/app/entrypoint.sh"]