27 lines
1.1 KiB
Docker
27 lines
1.1 KiB
Docker
|
|
## Dev Dockerfile — builds for the host platform (no cross-compilation).
|
||
|
|
FROM rust:latest AS deps
|
||
|
|
WORKDIR /build
|
||
|
|
|
||
|
|
RUN apt-get update && apt-get install -y protobuf-compiler && rm -rf /var/lib/apt/lists/*
|
||
|
|
|
||
|
|
COPY Cargo.toml Cargo.lock build.rs ./
|
||
|
|
COPY proto/ proto/
|
||
|
|
COPY vendor/ vendor/
|
||
|
|
|
||
|
|
RUN mkdir -p .cargo && \
|
||
|
|
printf '[registries.sunbeam]\nindex = "sparse+https://src.sunbeam.pt/api/packages/studio/cargo/"\n\n[source.crates-io]\nreplace-with = "vendored-sources"\n\n[source."sparse+https://src.sunbeam.pt/api/packages/studio/cargo/"]\nregistry = "sparse+https://src.sunbeam.pt/api/packages/studio/cargo/"\nreplace-with = "vendored-sources"\n\n[source.vendored-sources]\ndirectory = "vendor/"\n' \
|
||
|
|
> .cargo/config.toml
|
||
|
|
|
||
|
|
RUN mkdir -p src && echo "fn main(){}" > src/main.rs && \
|
||
|
|
cargo build --release && \
|
||
|
|
rm src/main.rs && rm target/release/sol
|
||
|
|
|
||
|
|
FROM deps AS builder
|
||
|
|
COPY src/ src/
|
||
|
|
RUN find src/ -name '*.rs' -exec touch {} + && \
|
||
|
|
cargo build --release
|
||
|
|
|
||
|
|
FROM gcr.io/distroless/cc-debian12:nonroot
|
||
|
|
COPY --from=builder /build/target/release/sol /
|
||
|
|
ENTRYPOINT ["/sol"]
|