# The cloud runner image plus a Docker engine, for jobs that use Docker actions (src/server/ci/runner-sizes.ts). # dockerd is not started here: the job script starts it on first use with the flags Cloudflare Containers need # (no iptables, no IP forwarding), so jobs that never reach a Docker step pay nothing for it. FROM node:24-bookworm AS node FROM ubuntu:24.04 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y --no-install-recommends \ git ca-certificates curl wget unzip zip xz-utils jq coreutils sudo gnupg lsb-release \ software-properties-common build-essential python3 python3-pip python3-venv \ && install -m 0755 -d /etc/apt/keyrings \ && curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc \ && chmod a+r /etc/apt/keyrings/docker.asc \ && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" > /etc/apt/sources.list.d/docker.list \ && apt-get update && apt-get install -y --no-install-recommends docker-ce docker-ce-cli containerd.io docker-buildx-plugin \ && rm -rf /var/lib/apt/lists/* COPY --from=node /usr/local/bin/node /usr/local/bin/node COPY --from=node /usr/local/lib/node_modules /usr/local/lib/node_modules RUN ln -s ../lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm \ && ln -s ../lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx \ && ln -s ../lib/node_modules/corepack/dist/corepack.js /usr/local/bin/corepack \ && node --version && npm --version RUN curl -fsSL https://bun.sh/install | bash && ln -s /root/.bun/bin/bun /usr/local/bin/bun WORKDIR /workspace CMD ["sleep", "infinity"]