pixel-change-check-client 0.1.10

Replicates your screen exactly and sends only the pixels that changed, over QUIC or a relay, to a native or browser viewer.
# This image is primarily for `pcc relay` and `pcc view`. `pcc share` needs a
# display server, or `--synthetic` when a real display is unavailable.
FROM rust:1.85-slim AS builder

RUN apt-get update && apt-get install -y --no-install-recommends \
    pkg-config libssl-dev libxcb1-dev libxrandr-dev libdbus-1-dev \
    libasound2-dev libopus-dev \
    && rm -rf /var/lib/apt/lists/*
WORKDIR /src
COPY . .
RUN cargo build --locked --release && strip target/release/pixel-change-check-client

FROM debian:stable-slim

RUN apt-get update && apt-get install -y --no-install-recommends \
    ca-certificates libopus1 libasound2 libxcb1 libxrandr2 libdbus-1-3 \
    && rm -rf /var/lib/apt/lists/* \
    && useradd --system --create-home --home-dir /var/lib/pcc --shell /usr/sbin/nologin pcc
COPY --from=builder /src/target/release/pixel-change-check-client /usr/local/bin/pcc

USER pcc
EXPOSE 5800 8080 5900
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
    CMD pcc --help >/dev/null || exit 1
ENTRYPOINT ["/usr/local/bin/pcc"]