2023-02-25 12:14:05 -05:00
|
|
|
FROM alpine:latest AS builder
|
|
|
|
|
|
|
|
|
|
WORKDIR /build
|
|
|
|
|
|
2024-12-23 22:31:20 +00:00
|
|
|
RUN apk add rustup build-base
|
2023-02-25 12:14:05 -05:00
|
|
|
# todo: arm64 target
|
2024-10-23 05:12:57 +09:00
|
|
|
RUN rustup-init --default-host x86_64-unknown-linux-musl --default-toolchain nightly-2024-08-20 --profile default -y
|
2023-02-25 12:14:05 -05:00
|
|
|
|
|
|
|
|
ENV PATH=/root/.cargo/bin:$PATH
|
|
|
|
|
ENV RUSTFLAGS='-C link-arg=-s'
|
|
|
|
|
|
|
|
|
|
RUN cargo install cargo-chef --locked
|
|
|
|
|
|
|
|
|
|
# build dependencies first to cache
|
|
|
|
|
FROM builder AS recipe-builder
|
|
|
|
|
COPY . .
|
|
|
|
|
RUN cargo chef prepare --recipe-path recipe.json
|
|
|
|
|
|
|
|
|
|
FROM builder AS binary-builder
|
|
|
|
|
COPY --from=recipe-builder /build/recipe.json recipe.json
|
|
|
|
|
RUN cargo chef cook --release --recipe-path recipe.json --target x86_64-unknown-linux-musl
|
|
|
|
|
|
|
|
|
|
COPY Cargo.toml /build/
|
|
|
|
|
COPY Cargo.lock /build/
|
|
|
|
|
|
2025-01-02 02:45:27 +00:00
|
|
|
COPY crates/ /build/crates
|
2023-02-25 12:14:05 -05:00
|
|
|
|
|
|
|
|
RUN cargo build --bin api --release --target x86_64-unknown-linux-musl
|
2024-11-01 05:06:54 +09:00
|
|
|
RUN cargo build --bin dispatch --release --target x86_64-unknown-linux-musl
|
2024-09-14 12:19:47 +09:00
|
|
|
RUN cargo build --bin gateway --release --target x86_64-unknown-linux-musl
|
2024-10-21 11:42:32 +09:00
|
|
|
RUN cargo build --bin avatars --release --target x86_64-unknown-linux-musl
|
2024-10-26 03:30:58 +09:00
|
|
|
RUN cargo build --bin avatar_cleanup --release --target x86_64-unknown-linux-musl
|
2024-12-28 02:40:58 +00:00
|
|
|
RUN cargo build --bin scheduled_tasks --release --target x86_64-unknown-linux-musl
|
2025-03-22 15:50:08 +00:00
|
|
|
RUN cargo build --bin gdpr_worker --release --target x86_64-unknown-linux-musl
|
2023-02-25 12:14:05 -05:00
|
|
|
|
2025-04-13 22:05:14 +00:00
|
|
|
FROM alpine:latest
|
2023-02-25 12:14:05 -05:00
|
|
|
|
|
|
|
|
COPY --from=binary-builder /build/target/x86_64-unknown-linux-musl/release/api /api
|
2024-11-01 05:06:54 +09:00
|
|
|
COPY --from=binary-builder /build/target/x86_64-unknown-linux-musl/release/dispatch /dispatch
|
2024-09-14 12:19:47 +09:00
|
|
|
COPY --from=binary-builder /build/target/x86_64-unknown-linux-musl/release/gateway /gateway
|
2024-10-21 11:42:32 +09:00
|
|
|
COPY --from=binary-builder /build/target/x86_64-unknown-linux-musl/release/avatars /avatars
|
2024-10-26 03:30:58 +09:00
|
|
|
COPY --from=binary-builder /build/target/x86_64-unknown-linux-musl/release/avatar_cleanup /avatar_cleanup
|
2024-12-28 02:40:58 +00:00
|
|
|
COPY --from=binary-builder /build/target/x86_64-unknown-linux-musl/release/scheduled_tasks /scheduled_tasks
|
2025-03-22 15:50:08 +00:00
|
|
|
COPY --from=binary-builder /build/target/x86_64-unknown-linux-musl/release/gdpr_worker /gdpr_worker
|