60 lines
1.2 KiB
Docker
60 lines
1.2 KiB
Docker
FROM node:18-alpine
|
|
|
|
# Install system dependencies
|
|
RUN apk add --no-cache \
|
|
git \
|
|
curl \
|
|
bash \
|
|
vim \
|
|
nano \
|
|
openssh-client \
|
|
python3 \
|
|
py3-pip \
|
|
build-base \
|
|
ca-certificates \
|
|
jq
|
|
|
|
# Set working directory to existing node user's home
|
|
WORKDIR /home/node
|
|
|
|
# Install Claude Code
|
|
RUN npm install -g @anthropic-ai/claude-code
|
|
|
|
# Install additional development tools
|
|
RUN npm install -g \
|
|
typescript \
|
|
ts-node \
|
|
nodemon \
|
|
prettier \
|
|
eslint
|
|
|
|
# Install gemini-cli
|
|
RUN npm install -g @google/gemini-cli
|
|
|
|
# Create necessary directories for node user
|
|
RUN mkdir -p /home/node/.claude \
|
|
/home/node/.config \
|
|
/home/node/.ssh \
|
|
/home/node/logs
|
|
|
|
# Copy claude-loop script
|
|
COPY claude-loop.sh /usr/local/bin/claude-loop
|
|
RUN chmod +x /usr/local/bin/claude-loop
|
|
|
|
# Set ownership of node user directories
|
|
RUN chown -R node:node /home/node
|
|
|
|
# Switch to node user
|
|
USER node
|
|
|
|
RUN curl -fsSL https://bun.sh/install | bash
|
|
|
|
# Set environment variables for Claude Code
|
|
ENV TERM=xterm-256color
|
|
ENV COLORTERM=truecolor
|
|
ENV NODE_ENV=development
|
|
ENV PATH="/home/node/.bun/bin:$PATH"
|
|
|
|
# Default command
|
|
CMD ["claude"]
|