Files
project-work/worker-toolkit-potion-polyglot-orig/.devcontainer/Dockerfile

49 lines
1.9 KiB
Docker

FROM node:24.12.0-bookworm
ARG TOOLKIT_BUILD_ID=dev
# System deps
RUN apt-get update && apt-get install -y \
git \
python3 \
python3-pip \
python3-venv \
sqlite3 \
curl \
zip \
unzip \
ca-certificates \
gnupg \
&& rm -rf /var/lib/apt/lists/*
# Install Docker CE CLI + compose plugin (not docker.io from apt which lacks compose)
RUN install -m 0755 -d /etc/apt/keyrings \
&& curl -fsSL https://download.docker.com/linux/debian/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/debian bookworm stable" > /etc/apt/sources.list.d/docker.list \
&& apt-get update \
&& apt-get install -y docker-ce-cli docker-compose-plugin \
&& rm -rf /var/lib/apt/lists/*
# Pin npm so lockfiles do not churn between this container and any host
# install. node:24.12.0-bookworm bundles an older npm; overwrite it.
RUN npm install -g npm@11.12.1
# Install uv and harbor
RUN pip3 install --break-system-packages uv && uv tool install harbor==0.20.0
# Pin harbor to the local docker backend — the only backend this container is
# provisioned for (docker CLI + host docker socket, configured above). The
# bundled scripts/harbor-run otherwise defaults to a cloud sandbox backend that
# needs an API key this container doesn't ship, and exits 1 before running.
# NOTE: devcontainer.json also sets HARBOR_ENV=docker via containerEnv — keep
# BOTH. containerEnv survives a stale image (workers who upgrade the toolkit
# files without rebuilding still get docker), while this ENV covers running the
# image directly with `docker run` outside the devcontainer tooling. Removing
# either as a "duplicate" reintroduces the daytona-default error.
ENV HARBOR_ENV=docker
# Make uv tools and Claude Code available
ENV PATH="/root/.local/bin:${PATH}"
WORKDIR /workspace