-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
36 lines (25 loc) · 888 Bytes
/
Dockerfile
File metadata and controls
36 lines (25 loc) · 888 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
FROM node:22-slim
# Install Ruby for the Sinatra proxy server
RUN apt-get update && apt-get install -y --no-install-recommends \
ruby ruby-dev build-essential ca-certificates \
&& rm -rf /var/lib/apt/lists/*
# Install bundler
RUN gem install bundler --no-document
# Install Claude CLI
RUN npm install -g @anthropic-ai/claude-code && npm cache clean --force
WORKDIR /app
# Install Ruby dependencies
COPY Gemfile ./
RUN bundle install --without development test
# Copy proxy app
COPY app.rb ./
COPY lib/ ./lib/
# Create empty working directory for CLI subprocesses
# (no CLAUDE.md, no .mcp.json, no plugins — minimal startup)
RUN mkdir -p /app/workdir
# Create data directory for token state persistence
RUN mkdir -p /data
EXPOSE 4001
ENV CLI_WORKDIR=/app/workdir
ENV TOKEN_STATE_FILE=/data/token_state.json
CMD ["bundle", "exec", "ruby", "app.rb", "-e", "production"]