-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
41 lines (31 loc) · 1.16 KB
/
Dockerfile
File metadata and controls
41 lines (31 loc) · 1.16 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
40
41
# Stage 1: Build Rust binaries
FROM rustlang/rust:nightly-bookworm AS builder
# rquest → boring-sys2 needs cmake + perl + a C/C++ toolchain
RUN apt-get update && apt-get install -y --no-install-recommends \
cmake perl build-essential pkg-config libclang-dev libssl-dev \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY . .
RUN cargo build --release -p engagent -p minions
# Stage 2: Runtime
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y \
ca-certificates curl git nodejs npm libssl3 \
&& rm -rf /var/lib/apt/lists/*
# Install Claude Code CLI
RUN npm install -g @anthropic-ai/claude-code
# Copy binaries
COPY --from=builder /app/target/release/engagent /usr/local/bin/
COPY --from=builder /app/target/release/minions /usr/local/bin/
# Copy skill files
COPY skills/ /root/.config/minions/skills/
# Create data directory
RUN mkdir -p /data/.config/engagent-v2
# Entrypoint seeds credentials on first boot
COPY scripts/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
ENV HOME=/data
ENV PORT=8080
EXPOSE 8080
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["engagent", "--port", "8080"]