forked from vincentchen2026/claude-code-java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
39 lines (32 loc) · 1.25 KB
/
Dockerfile
File metadata and controls
39 lines (32 loc) · 1.25 KB
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
37
38
39
# Claude Code Java — Multi-stage Docker build
# Stage 1: Build
FROM eclipse-temurin:21-jdk-jammy AS builder
WORKDIR /build
COPY pom.xml .
COPY claude-code-utils/pom.xml claude-code-utils/
COPY claude-code-core/pom.xml claude-code-core/
COPY claude-code-api/pom.xml claude-code-api/
COPY claude-code-permissions/pom.xml claude-code-permissions/
COPY claude-code-tools/pom.xml claude-code-tools/
COPY claude-code-commands/pom.xml claude-code-commands/
COPY claude-code-mcp/pom.xml claude-code-mcp/
COPY claude-code-bridge/pom.xml claude-code-bridge/
COPY claude-code-session/pom.xml claude-code-session/
COPY claude-code-services/pom.xml claude-code-services/
COPY claude-code-ui/pom.xml claude-code-ui/
COPY claude-code-cli/pom.xml claude-code-cli/
COPY claude-code-app/pom.xml claude-code-app/
# Download dependencies first (cached layer)
RUN apt-get update && apt-get install -y maven && \
mvn dependency:go-offline -B || true
# Copy source and build
COPY . .
RUN mvn package -DskipTests -B
# Stage 2: Runtime
FROM eclipse-temurin:21-jre-jammy
WORKDIR /app
COPY --from=builder /build/claude-code-app/target/claude-code-app-*.jar app.jar
# Create non-root user
RUN groupadd -r claude && useradd -r -g claude claude
USER claude
ENTRYPOINT ["java", "-jar", "app.jar"]