ARG RUST_BUILDER_IMAGE=rust:1.51-slim

# Build Lemmy
FROM $RUST_BUILDER_IMAGE as builder

# Install compilation dependencies
RUN apt-get update \
 && apt-get -y install --no-install-recommends libssl-dev pkg-config libpq-dev \
 && rm -rf /var/lib/apt/lists/*

WORKDIR /app

COPY ./ ./
RUN echo "pub const VERSION: &str = \"$(git describe --tag)\";" > "crates/utils/src/version.rs"

RUN cargo build --release

# reduce binary size
RUN strip ./target/release/lemmy_server

RUN cp ./target/release/lemmy_server /app/lemmy_server

# The Debian runner
FROM debian:buster-slim as lemmy

# Install libpq for postgres
RUN apt-get update \
 && apt-get -y install --no-install-recommends postgresql-client libc6 libssl1.1 \
 && rm -rf /var/lib/apt/lists/*

RUN addgroup --gid 1000 lemmy
RUN adduser --no-create-home --shell /bin/sh --uid 1000 --gid 1000 lemmy

# Copy resources
COPY --chown=lemmy:lemmy --from=builder /app/lemmy_server /app/lemmy

RUN chown lemmy:lemmy /app/lemmy
USER lemmy
EXPOSE 8536
CMD ["/app/lemmy"]