-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
35 lines (25 loc) · 1.16 KB
/
Dockerfile
File metadata and controls
35 lines (25 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
# syntax=docker/dockerfile:1
FROM rust:1-bookworm AS builder
WORKDIR /app
RUN apt-get update \
&& apt-get install -y --no-install-recommends cmake clang pkg-config \
&& rm -rf /var/lib/apt/lists/*
COPY Cargo.toml Cargo.lock ./
COPY crates ./crates
COPY examples ./examples
RUN cargo build --release --workspace --bins
FROM debian:bookworm-slim AS runtime
RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates \
&& rm -rf /var/lib/apt/lists/* \
&& useradd --system --uid 10001 --home-dir /nonexistent --shell /usr/sbin/nologin ferrum
COPY --from=builder /app/target/release/ferrum-gateway /usr/local/bin/ferrum-gateway
COPY --from=builder /app/target/release/mock-upstream /usr/local/bin/mock-upstream
COPY --from=builder /app/target/release/mock-llm /usr/local/bin/mock-llm
COPY --from=builder /app/target/release/mock-mcp /usr/local/bin/mock-mcp
COPY --from=builder /app/target/release/mock-tokengate /usr/local/bin/mock-tokengate
COPY config/gateway.example.toml /etc/ferrum-gateway/gateway.toml
USER ferrum
EXPOSE 8080 8081
ENTRYPOINT ["/usr/local/bin/ferrum-gateway"]
CMD ["--config", "/etc/ferrum-gateway/gateway.toml"]