]> Untitled Git - lemmy.git/blob - docker/prod/Dockerfile.arm
e451fc56f634c67f7b94d50b558f388a45bfa67c
[lemmy.git] / docker / prod / Dockerfile.arm
1 ARG RUST_BUILDER_IMAGE=rust:1.47-slim-buster
2
3 # Build Lemmy
4 FROM $RUST_BUILDER_IMAGE as builder
5
6 # Install compilation dependencies
7 RUN apt-get update \
8  && apt-get -y install --no-install-recommends libssl-dev pkg-config libpq-dev \
9  && rm -rf /var/lib/apt/lists/*
10
11 WORKDIR /app
12
13 COPY ./ ./
14
15 RUN cargo build --release
16
17 # reduce binary size
18 RUN strip ./target/release/lemmy_server
19
20 RUN cp ./target/release/lemmy_server /app/lemmy_server
21
22 # Build the docs
23 FROM $RUST_BUILDER_IMAGE as docs
24 WORKDIR /app
25 RUN cargo install mdbook --git https://github.com/Nutomic/mdBook.git --branch localization --rev 0982a82 --force
26 COPY docs ./docs
27 RUN mdbook build docs/
28
29 # The Debian runner
30 FROM debian:buster-slim as lemmy
31
32 # Install libpq for postgres and espeak for captchas
33 RUN apt-get update \
34  && apt-get -y install --no-install-recommends espeak postgresql-client libc6 libssl1.1 \
35  && rm -rf /var/lib/apt/lists/*
36
37 RUN addgroup --gid 1000 lemmy
38 RUN adduser --no-create-home --shell /bin/sh --uid 1000 --gid 1000 lemmy
39
40 # Copy resources
41 COPY --chown=lemmy:lemmy config/defaults.hjson /config/defaults.hjson
42 COPY --chown=lemmy:lemmy --from=builder /app/lemmy_server /app/lemmy
43 COPY --chown=lemmy:lemmy --from=docs /app/docs/book/ /app/documentation/
44
45 RUN chown lemmy:lemmy /app/lemmy
46 USER lemmy
47 EXPOSE 8536
48 CMD ["/app/lemmy"]