Some checks failed
CI / lint (push) Successful in 39s
Deploy / notebooks (push) Has been skipped
Deploy / zotero (push) Has been skipped
Deploy / docs (push) Has been skipped
Deploy / api (push) Has been skipped
Deploy / mc (push) Has been skipped
Deploy / report (push) Successful in 15s
CI / test (push) Failing after 13m2s
Package Supply Chain / pkg-supply-chain (push) Failing after 58s
ENTRYPOINT was claude, so the container's life was tied to a single claude invocation. docker compose up (no attached TTY) → claude exits immediately → container dies. Only docker compose run --rm with an attached terminal kept it alive, which doesn't match how the sandbox is meant to be used. Now ENTRYPOINT is sleep infinity and compose pins the same. The container stays up; users do `docker compose exec claude claude` for interactive or one-shot sessions, or `docker compose run --rm --entrypoint claude claude` for ephemeral runs.
17 lines
681 B
Docker
17 lines
681 B
Docker
# Containerized Claude Code client — proxied via cf-proxy (sibling service).
|
|
# Mirrors what dev/scripts/setup-proxy-client.sh does on a WSL host, minus the
|
|
# systemd/hosts hackery (compose handles networking + extra_hosts).
|
|
FROM node:20-bookworm-slim
|
|
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends \
|
|
ca-certificates curl git jq openssh-client \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN npm install -g @anthropic-ai/claude-code
|
|
|
|
# Daemon-style: container stays alive so users `docker compose exec` claude
|
|
# inside it. For one-shot invocations: `docker compose run --rm
|
|
# --entrypoint claude claude [-p 'prompt']`.
|
|
ENTRYPOINT ["sleep", "infinity"]
|