-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDockerfile.arena
More file actions
47 lines (35 loc) · 1.37 KB
/
Dockerfile.arena
File metadata and controls
47 lines (35 loc) · 1.37 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
42
43
44
45
46
47
# TRINITY ARENA — LLM Battle Platform
# Pure Zig HTTP server with ELO leaderboard
# Deploy: docker build -f deploy/Dockerfile.arena -t arena . && docker run -p 8080:8080 arena
# Build stage: compile arena binary with Zig 0.15.2
FROM debian:bookworm-slim AS build
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates curl xz-utils \
&& rm -rf /var/lib/apt/lists/*
# Install Zig 0.15.2
RUN curl -L https://ziglang.org/download/0.15.2/zig-linux-x86_64-0.15.2.tar.xz \
| tar -xJ -C /opt \
&& ln -s /opt/zig-linux-x86_64-0.15.2/zig /usr/local/bin/zig
WORKDIR /app
COPY build.zig build.zig.zon ./
COPY src/ src/
COPY tools/ tools/
COPY specs/ specs/
COPY generated/ generated/
# Build all binaries (arena needs modules from build.zig)
RUN zig build 2>&1 | tail -20; \
test -f zig-out/bin/arena && echo "ARENA BUILD OK" || exit 1
# Runtime stage: minimal image
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
COPY --from=build /app/zig-out/bin/arena /usr/local/bin/arena
# Arena data directory (battle results, leaderboard)
RUN mkdir -p /data/arena
WORKDIR /data
ENV ARENA_PORT=8080
EXPOSE 8080
# Pass API keys via env vars at runtime:
# -e OPENAI_API_KEY=... -e ANTHROPIC_API_KEY=... -e ZAI_KEY_1=...
ENTRYPOINT ["/usr/local/bin/arena", "serve"]