# The CI image, reproduced locally.
#
# 🔴 WHY THIS FILE EXISTS. This image was built once, by hand, from a Dockerfile
# in a scratch directory under /tmp — and /tmp was swept. The image survived on
# one host and its recipe did not, which is the same shape as every other thing
# this consolidation found: something correct that exists in exactly one place.
#
# The apt list below is COPIED from `.github/workflows/ci.yml`'s "Install Linux
# system dependencies" step. If that list changes, this must change with it, or
# a local run stops predicting the runner.
#
#   docker build -t sylph-ci:local docker/ci
#
# ⚠️ The Rust version is PINNED and the runner's is NOT — `dtolnay/rust-toolchain@stable`
# floats. That difference is issue #15: `collapsible_else_if` is `warn` on 1.92
# and `allow` on 1.98.1, so a local clippy pass and a runner clippy pass can
# legitimately disagree. When they do, the runner is the authority.
FROM rust:1.98.1-bookworm

RUN apt-get update && apt-get install -y --no-install-recommends \
        libasound2-dev \
        libudev-dev \
        libwayland-dev \
        libxkbcommon-dev \
        libx11-dev \
        libxi-dev \
        pkg-config \
    && rm -rf /var/lib/apt/lists/*

RUN rustup component add clippy rustfmt \
    && rustup target add wasm32-unknown-unknown

WORKDIR /work
