Extracted from ardenone-cluster/containers/zai-proxy and ardenone-cluster/containers/zai-proxy-dashboard. - proxy/: OpenAI-compatible ZAI reverse proxy (Go, v1.10.0) - Token counting, rate limiting, Prometheus metrics, canary support - dashboard/: Metrics dashboard backend + React frontend (Go, v1.0.0) - Prometheus collector, SQLite storage, SSE live updates - docs/: Operational notes, research, and plan subdirs Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
23 lines
659 B
Text
23 lines
659 B
Text
# Simplified Dockerfile that avoids overlayfs mount issues
|
|
# Uses single-stage build with pre-compiled binary
|
|
|
|
FROM docker.io/library/alpine:3.19
|
|
|
|
LABEL maintainer="ardenone"
|
|
LABEL description="Z.AI API proxy with token injection and Prometheus metrics"
|
|
|
|
# Install ca-certificates and create user in one layer
|
|
RUN apk add --no-cache ca-certificates && \
|
|
adduser -D -u 1000 proxyuser
|
|
|
|
# Copy pre-built binary
|
|
COPY --chown=proxyuser:proxyuser zai-proxy /zai-proxy
|
|
|
|
USER proxyuser
|
|
|
|
EXPOSE 8080
|
|
|
|
HEALTHCHECK --interval=30s --timeout=5s --start-period=5s --retries=3 \
|
|
CMD wget -q --spider http://localhost:8080/health || exit 1
|
|
|
|
ENTRYPOINT ["/zai-proxy"]
|