29 lines
749 B
Docker
29 lines
749 B
Docker
# Build stage
|
|
FROM rust:1-bookworm AS builder
|
|
|
|
WORKDIR /usr/src/model-radar
|
|
COPY Cargo.toml Cargo.lock ./
|
|
COPY src ./src
|
|
|
|
RUN cargo build --release --locked && \
|
|
strip target/release/model-radar
|
|
|
|
# Runtime stage
|
|
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 -u 10001 -m -d /home/modelradar -s /usr/sbin/nologin modelradar && \
|
|
mkdir -p /data && \
|
|
chown -R modelradar:modelradar /data
|
|
|
|
COPY --from=builder /usr/src/model-radar/target/release/model-radar /usr/local/bin/model-radar
|
|
|
|
USER modelradar
|
|
WORKDIR /data
|
|
VOLUME ["/data"]
|
|
|
|
ENV STATE_PATH=/data/state.json
|
|
|
|
ENTRYPOINT ["/usr/local/bin/model-radar"]
|