FROM quay.io/ryph/ryph-universal:1 USER root # Tauri's system libraries (desktop/'s cargo build, clippy and tests), and # bzip2 for the explorer's .tar.bz2 test fixtures. RUN apt-get update \ && apt-get install -y --no-install-recommends \ libwebkit2gtk-4.1-dev \ libjavascriptcoregtk-4.1-dev \ libayatana-appindicator3-dev \ librsvg2-dev \ libxdo-dev \ bzip2 \ && rm -rf /var/lib/apt/lists/* # The OS libraries Playwright's browsers need: WebKit for desktop/'s e2e tests, # Chromium and WebKit for the explorer's and always-on-node's. The # browsers themselves are installed by each member's setup, keyed on its lockfile. RUN npx -y playwright@1.61.1 install-deps chromium webkit \ && rm -rf /var/lib/apt/lists/* /root/.npm \ && chown -R runner:runner /usr/local/share/mise # garden-broker's `make lint`. RUN curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/v2.14.0/install.sh \ | sh -s -- -b /usr/local/bin v2.14.0 \ && golangci-lint version USER runner # garden-broker's go.mod files say `go 1.25.0`, a minimum, and pin no toolchain. # Without this, mise reads that line as a pin and tries to download Go 1.25.0 # instead of using the image's newer Go. ENV MISE_IDIOMATIC_VERSION_FILE_ENABLE_TOOLS=node,python,deno,bun # Debug info is most of a warm target/ (8 GB of desktop/'s 13). Line # tables keep file:line in panics and backtraces. Set for the whole machine, # so the image's warm build and every run's builds use the same profile. ENV CARGO_PROFILE_DEV_DEBUG=line-tables-only