33 lines
1 KiB
Text
33 lines
1 KiB
Text
|
|
ARG IMAGE_BASE=reg.librecloud.online/lamina
|
||
|
|
ARG RUST_VERSION=1.89
|
||
|
|
|
||
|
|
# Pull nickel binary from the lamina nickel layer — named stage makes ARG expansion reliable
|
||
|
|
FROM ${IMAGE_BASE}/nickel:${RUST_VERSION} AS nickel-layer
|
||
|
|
|
||
|
|
# Builder: lamina rust layer provides cargo, rustc, sccache, cargo-chef
|
||
|
|
FROM ${IMAGE_BASE}/rust:${RUST_VERSION} AS builder
|
||
|
|
|
||
|
|
WORKDIR /build
|
||
|
|
ENV CARGO_TARGET_DIR=/build/target
|
||
|
|
|
||
|
|
# stratumiops source injected via --build-context stratumiops=../stratumiops
|
||
|
|
# Resolves to /stratumiops — matches ../../../stratumiops relative path from crates/ontoref-daemon/
|
||
|
|
COPY --from=stratumiops . /stratumiops
|
||
|
|
|
||
|
|
COPY Cargo.toml Cargo.lock ./
|
||
|
|
COPY crates ./crates
|
||
|
|
|
||
|
|
RUN cargo build --release --bin ontoref-daemon
|
||
|
|
|
||
|
|
# Runtime: minimal base + nickel (for NCL export at runtime) + daemon binary
|
||
|
|
FROM alpine:3.21
|
||
|
|
|
||
|
|
RUN apk add --no-cache ca-certificates
|
||
|
|
|
||
|
|
COPY --from=nickel-layer /usr/local/bin/nickel /usr/local/bin/nickel
|
||
|
|
COPY --from=builder /build/target/release/ontoref-daemon /usr/local/bin/ontoref-daemon
|
||
|
|
|
||
|
|
EXPOSE 7891
|
||
|
|
|
||
|
|
ENTRYPOINT ["ontoref-daemon"]
|