42 lines
1.2 KiB
Docker
42 lines
1.2 KiB
Docker
# Claude sandbox image: Claude CLI + Node.js + Python
|
|
# Supports both amd64 and arm64 architectures
|
|
ARG REGISTRY=yaoapp
|
|
FROM ${REGISTRY}/sandbox-base:latest
|
|
|
|
USER root
|
|
|
|
# Node.js 20 (automatically detects architecture)
|
|
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
|
|
&& apt-get install -y nodejs \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Python 3.11
|
|
RUN apt-get update && apt-get install -y \
|
|
python3.11 \
|
|
python3-pip \
|
|
python3-venv \
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
&& ln -sf /usr/bin/python3.11 /usr/bin/python3 \
|
|
&& ln -sf /usr/bin/python3 /usr/bin/python
|
|
|
|
# Claude CLI installation
|
|
# Using npm to install @anthropic-ai/claude-code globally
|
|
RUN npm install -g @anthropic-ai/claude-code || \
|
|
echo "Claude CLI installation skipped (may not be available yet)"
|
|
|
|
# npm global packages directory for sandbox user
|
|
RUN mkdir -p /home/sandbox/.npm-global && \
|
|
chown -R sandbox:sandbox /home/sandbox/.npm-global
|
|
|
|
USER sandbox
|
|
|
|
# Configure npm to use user directory
|
|
RUN npm config set prefix '/home/sandbox/.npm-global'
|
|
ENV PATH="/home/sandbox/.npm-global/bin:${PATH}"
|
|
|
|
# Verify installations
|
|
RUN node --version && npm --version && python3 --version
|
|
|
|
WORKDIR /workspace
|
|
|
|
CMD ["sleep", "infinity"]
|