mirror of
https://github.com/affaan-m/ECC.git
synced 2026-08-17 21:15:40 +02:00
* feat(install): add hardened Docker test harness * feat(docker): complete isolated CLI session lifecycle * fix(docker): exercise packed public CLI offline * fix(docker): close hardened harness review gaps * test(docker): bound harness subprocesses
45 lines
1.3 KiB
Docker
45 lines
1.3 KiB
Docker
ARG NODE_IMAGE=node:22-bookworm-slim@sha256:6c74791e557ce11fc957704f6d4fe134a7bc8d6f5ca4403205b2966bd488f6b3
|
|
ARG OS_IMAGE=node:22-bookworm-slim@sha256:6c74791e557ce11fc957704f6d4fe134a7bc8d6f5ca4403205b2966bd488f6b3
|
|
|
|
FROM ${NODE_IMAGE} AS node-runtime
|
|
FROM ${OS_IMAGE}
|
|
|
|
ARG DISTRO=debian
|
|
ARG CLAUDE_CODE_VERSION=2.1.220
|
|
|
|
RUN apt-get update \
|
|
&& apt-get install --yes --no-install-recommends \
|
|
bash \
|
|
ca-certificates \
|
|
git \
|
|
libatomic1 \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY --from=node-runtime /usr/local/ /usr/local/
|
|
|
|
RUN getent passwd 1000 >/dev/null \
|
|
&& getent group 1000 >/dev/null
|
|
|
|
RUN npm install --global --include=optional --ignore-scripts \
|
|
"@anthropic-ai/claude-code@${CLAUDE_CODE_VERSION}" \
|
|
"@iarna/toml@2.2.5" \
|
|
"ajv@8.20.0" \
|
|
"sql.js@1.14.1" \
|
|
&& global_node_modules="$(npm root --global)" \
|
|
&& node "${global_node_modules}/@anthropic-ai/claude-code/install.cjs" \
|
|
&& npm cache clean --force \
|
|
&& claude --version
|
|
|
|
RUN mkdir -p /workspace \
|
|
&& chown 1000:1000 /workspace
|
|
|
|
ENV CLAUDE_CONFIG_DIR=/tmp/ecc-claude-config
|
|
ENV DISABLE_AUTOUPDATER=1
|
|
ENV HOME=/tmp/ecc-home
|
|
ENV NODE_PATH=/usr/local/lib/node_modules
|
|
|
|
WORKDIR /workspace
|
|
USER 1000:1000
|
|
|
|
LABEL org.opencontainers.image.title="ECC plugin setup test (${DISTRO})"
|