forked from kemitix/git-next
Paul Campbell
3ea7f36c98
Debian routinly drop older versions of packages from the repositories as new versions replace them. Pinning the version causes the build to break at seamingly random times when the pinned version gets dropped.
30 lines
907 B
Docker
30 lines
907 B
Docker
# Leveraging the pre-built Docker images with
|
|
# cargo-chef and the Rust toolchain
|
|
FROM git.kemitix.net/kemitix/git-next-builder:2024.08.04 AS chef
|
|
WORKDIR /app
|
|
|
|
FROM chef AS planner
|
|
COPY Cargo.toml ./
|
|
COPY crates crates
|
|
RUN cargo chef prepare --recipe-path recipe.json
|
|
|
|
FROM chef AS builder
|
|
COPY --from=planner /app/recipe.json recipe.json
|
|
RUN cargo chef cook --profile release --recipe-path recipe.json
|
|
COPY . .
|
|
RUN cargo build --release --bin git-next --all-features && \
|
|
strip target/release/git-next
|
|
|
|
FROM docker.io/debian:stable-20240904-slim AS runtime
|
|
WORKDIR /app
|
|
RUN apt-get update && \
|
|
apt-get satisfy -y "git (>=2.39), libssl3 (>=3.0.14), libdbus-1-dev (>=1.14.10), ca-certificates (>=20230311)" \
|
|
&& \
|
|
rm -rf /var/lib/apt/lists/*
|
|
USER 1000
|
|
COPY --from=builder /app/target/release/git-next /usr/local/bin
|
|
|
|
ENV HOME=/app
|
|
|
|
ENTRYPOINT [ "/usr/local/bin/git-next" ]
|
|
CMD [ "server", "start" ]
|