# This Dockerfile sets up the environment for ci.
# requires at least bookworm for the required versions of webkit2gtk and gtk3
FROM node:24-bookworm-slim

RUN apt-get update && apt-get install -y --no-install-recommends \
  git \
  ca-certificates \
  pkg-config \
  libgtk-3-dev \
  libgdk-pixbuf2.0-dev \
  libwebkit2gtk-4.1-dev \
  build-essential \
  curl \
  wget \
  file \
  libxdo-dev \
  libssl-dev \
  libayatana-appindicator3-dev \
  librsvg2-dev \
  libgdk-pixbuf2.0-dev \
  xfce4 \
  xfce4-goodies \
  && rm -rf /var/lib/apt/lists/*

# Install rustup and the stable toolchain
ENV RUSTUP_HOME=/root/.rustup \
  CARGO_HOME=/root/.cargo \
  PATH=/root/.cargo/bin:/usr/local/cargo/bin:$PATH

RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o /tmp/rustup-init.sh \
  && chmod +x /tmp/rustup-init.sh \
  && /tmp/rustup-init.sh -y \
  && rm /tmp/rustup-init.sh

# Enable Corepack (for pnpm) and install latest pnpm shim
RUN corepack enable \
  && corepack prepare pnpm@latest --activate
