18 lines
838 B
Docker
18 lines
838 B
Docker
# syntax=docker/dockerfile:1
|
|
FROM rust:1-bookworm AS build
|
|
WORKDIR /src
|
|
COPY Cargo.toml Cargo.lock ./
|
|
COPY .cargo .cargo
|
|
COPY crates crates
|
|
COPY migrations migrations
|
|
RUN --mount=type=cache,target=/usr/local/cargo/registry,sharing=locked \
|
|
--mount=type=cache,target=/src/target,id=lazyboy-supervisor-release,sharing=locked \
|
|
cargo build --locked --release -p lazyboy-supervisor && cp /src/target/release/lazyboy-supervisor /lazyboy-supervisor
|
|
|
|
# Pin the multi-arch (amd64 + arm64) index by digest: `latest` is mutable and a
|
|
# floating base silently changes the supervisor's libc on every rebuild.
|
|
FROM gcr.io/distroless/cc-debian12@sha256:e5d81ddde149641e2a9ba55be4545bc125c67de07508b03ba4c22e6eb0ded5aa
|
|
COPY --from=build /lazyboy-supervisor /usr/local/bin/lazyboy-supervisor
|
|
EXPOSE 7091
|
|
CMD ["/usr/local/bin/lazyboy-supervisor"]
|