2021-07-12 23:14:39 +03:00
|
|
|
# syntax = docker/dockerfile:1.2
|
|
|
|
|
2024-05-05 16:02:50 +03:00
|
|
|
FROM rust:1.78-bookworm as builder
|
2021-07-12 23:14:39 +03:00
|
|
|
WORKDIR app
|
|
|
|
COPY . .
|
|
|
|
|
2022-04-09 17:30:42 +03:00
|
|
|
# Compile collab server
|
2023-01-27 11:50:59 +03:00
|
|
|
ARG CARGO_PROFILE_RELEASE_PANIC=abort
|
2024-02-01 21:54:49 +03:00
|
|
|
ARG GITHUB_SHA
|
|
|
|
|
|
|
|
ENV GITHUB_SHA=$GITHUB_SHA
|
2021-07-12 23:14:39 +03:00
|
|
|
RUN --mount=type=cache,target=./script/node_modules \
|
|
|
|
--mount=type=cache,target=/usr/local/cargo/registry \
|
2024-02-15 01:11:57 +03:00
|
|
|
--mount=type=cache,target=/usr/local/cargo/git \
|
2021-07-12 23:14:39 +03:00
|
|
|
--mount=type=cache,target=./target \
|
2022-04-09 17:30:42 +03:00
|
|
|
cargo build --release --package collab --bin collab
|
2021-07-12 23:14:39 +03:00
|
|
|
|
2022-04-09 17:30:42 +03:00
|
|
|
# Copy collab server binary out of cached directory
|
2021-07-12 23:14:39 +03:00
|
|
|
RUN --mount=type=cache,target=./target \
|
2022-04-09 17:30:42 +03:00
|
|
|
cp /app/target/release/collab /app/collab
|
2021-07-12 23:14:39 +03:00
|
|
|
|
2022-04-09 17:30:42 +03:00
|
|
|
# Copy collab server binary to the runtime image
|
2024-03-06 20:27:08 +03:00
|
|
|
FROM debian:bookworm-slim as runtime
|
2021-07-12 23:14:39 +03:00
|
|
|
RUN apt-get update; \
|
2024-03-07 02:39:48 +03:00
|
|
|
apt-get install -y --no-install-recommends libcurl4-openssl-dev ca-certificates \
|
|
|
|
linux-perf binutils
|
2021-07-12 23:14:39 +03:00
|
|
|
WORKDIR app
|
2022-10-21 23:15:34 +03:00
|
|
|
COPY --from=builder /app/collab /app/collab
|
|
|
|
COPY --from=builder /app/crates/collab/migrations /app/migrations
|
|
|
|
ENV MIGRATIONS_PATH=/app/migrations
|
2022-04-09 17:30:42 +03:00
|
|
|
ENTRYPOINT ["/app/collab"]
|