# Build Stage FROM rust:1.86.0-slim-bookworm USER 0:0 WORKDIR /home/rust/src # Install build requirements RUN apt-get update && \ apt-get install -y \ make \ pkg-config \ libssl-dev COPY scripts/build-image-layer.sh /tmp/ # Build all dependencies COPY Cargo.toml Cargo.lock ./ COPY crates/bonfire/Cargo.toml ./crates/bonfire/ COPY crates/delta/Cargo.toml ./crates/delta/ COPY crates/core/config/Cargo.toml ./crates/core/config/ COPY crates/core/database/Cargo.toml ./crates/core/database/ COPY crates/core/files/Cargo.toml ./crates/core/files/ COPY crates/core/models/Cargo.toml ./crates/core/models/ COPY crates/core/parser/Cargo.toml ./crates/core/parser/ COPY crates/core/permissions/Cargo.toml ./crates/core/permissions/ COPY crates/core/presence/Cargo.toml ./crates/core/presence/ COPY crates/core/result/Cargo.toml ./crates/core/result/ COPY crates/core/coalesced/Cargo.toml ./crates/core/coalesced/ COPY crates/core/ratelimits/Cargo.toml ./crates/core/ratelimits/ COPY crates/services/autumn/Cargo.toml ./crates/services/autumn/ COPY crates/services/january/Cargo.toml ./crates/services/january/ COPY crates/services/gifbox/Cargo.toml ./crates/services/gifbox/ COPY crates/daemons/crond/Cargo.toml ./crates/daemons/crond/ COPY crates/daemons/pushd/Cargo.toml ./crates/daemons/pushd/ RUN sh /tmp/build-image-layer.sh deps # Build all apps COPY crates ./crates RUN sh /tmp/build-image-layer.sh apps