35 lines
1.4 KiB
Docker
35 lines
1.4 KiB
Docker
# syntax=docker/dockerfile:1.7
|
|
FROM rust:1-bookworm AS build
|
|
WORKDIR /app/src/components/backend-core
|
|
ARG CARGO_BUILD_JOBS=1
|
|
ARG CARGO_HTTP_TIMEOUT=180
|
|
ARG CARGO_HTTP_LOW_SPEED_LIMIT=1
|
|
ARG CARGO_NET_RETRY=5
|
|
ARG CARGO_HTTP_MULTIPLEXING=false
|
|
ARG CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse
|
|
ENV CARGO_BUILD_JOBS=${CARGO_BUILD_JOBS} \
|
|
CARGO_HTTP_TIMEOUT=${CARGO_HTTP_TIMEOUT} \
|
|
CARGO_HTTP_LOW_SPEED_LIMIT=${CARGO_HTTP_LOW_SPEED_LIMIT} \
|
|
CARGO_NET_RETRY=${CARGO_NET_RETRY} \
|
|
CARGO_HTTP_MULTIPLEXING=${CARGO_HTTP_MULTIPLEXING} \
|
|
CARGO_REGISTRIES_CRATES_IO_PROTOCOL=${CARGO_REGISTRIES_CRATES_IO_PROTOCOL}
|
|
COPY src/components/backend-core/Cargo.toml ./Cargo.toml
|
|
COPY src/components/backend-core/Cargo.lock ./Cargo.lock
|
|
RUN mkdir -p src \
|
|
&& printf 'fn main() {}\n' > src/main.rs \
|
|
&& cargo build --release --locked --jobs "${CARGO_BUILD_JOBS}" \
|
|
&& rm -rf src
|
|
COPY src/components/backend-core/src ./src
|
|
RUN rm -f target/release/backend-core target/release/backend-core.d \
|
|
&& find target/release/.fingerprint -maxdepth 1 -type d -name 'unidesk-backend-core-*' -exec rm -rf {} + \
|
|
&& cargo build --release --locked --jobs "${CARGO_BUILD_JOBS}"
|
|
|
|
FROM postgres:16-bookworm
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends ca-certificates tar gzip \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
COPY --from=build /app/src/components/backend-core/target/release/backend-core /usr/local/bin/backend-core
|
|
ENTRYPOINT []
|
|
CMD ["backend-core"]
|