Dockerfile
52 lignes · 2210 octets
# Build context must be the workspace root: `docker build -f tests/fediverse-testbed/Dockerfile .` # The compose file already passes context: ../.. accordingly. FROM rust:1.91-slim-bookworm AS builder WORKDIR /build RUN apt-get update \ && apt-get install -y --no-install-recommends pkg-config libssl-dev ca-certificates \ && rm -rf /var/lib/apt/lists/* COPY Cargo.toml Cargo.lock ./ COPY app ./app COPY crates ./crates COPY tools ./tools # rustwarden-app + migrate (SeaORM CLI) + migrate-fediverse + # migrate-fediverse-guard + seed helper. The app is built with the # three federation features so the admin dashboard ships both the # fediverse settings UI (RFC 0021) and the guard UI (RFC 0028) end-to-end. RUN cargo build --release \ -p rustwarden-app --features "fediverse-ui fediverse-guard" \ && cargo build --release \ -p rustwarden-core --bin seed --bin migrate \ && cargo build --release \ -p rustwarden-fediverse --bin migrate-fediverse \ && cargo build --release \ -p rustwarden-fediverse-guard --bin migrate-fediverse-guard FROM debian:bookworm-slim AS runtime RUN apt-get update \ && apt-get install -y --no-install-recommends ca-certificates libssl3 curl postgresql-client \ && rm -rf /var/lib/apt/lists/* WORKDIR /app # Locales are read at runtime from these *relative* paths (see init_i18n in # crates/rustwarden-core/src/app.rs). The directory layout must mirror the # workspace tree for the i18n loader to find them. COPY --from=builder /build/crates/rustwarden-core/locales ./crates/rustwarden-core/locales COPY --from=builder /build/crates/rustwarden-ui/locales ./crates/rustwarden-ui/locales # Static assets served by ServeDir (path overridable via RUSTWARDEN_STATIC_DIR). COPY static ./static COPY --from=builder /build/target/release/rustwarden /usr/local/bin/rustwarden COPY --from=builder /build/target/release/seed /usr/local/bin/seed COPY --from=builder /build/target/release/migrate /usr/local/bin/migrate COPY --from=builder /build/target/release/migrate-fediverse /usr/local/bin/migrate-fediverse COPY --from=builder /build/target/release/migrate-fediverse-guard /usr/local/bin/migrate-fediverse-guard EXPOSE 80 CMD ["rustwarden"]
GitRust