]> Untitled Git - lemmy.git/blob - docker/prod/Dockerfile
Simplifying prod build, using musl stable. (#1235)
[lemmy.git] / docker / prod / Dockerfile
1 ARG RUST_BUILDER_IMAGE=ekidd/rust-musl-builder:stable
2
3 FROM $RUST_BUILDER_IMAGE as rust
4
5 ARG RUSTRELEASEDIR="release"
6
7 WORKDIR /app/server
8 COPY . ./
9 RUN cargo build --release
10
11 # reduce binary size
12 RUN strip ./target/$CARGO_BUILD_TARGET/$RUSTRELEASEDIR/lemmy_server
13
14 RUN cp ./target/$CARGO_BUILD_TARGET/$RUSTRELEASEDIR/lemmy_server /app/server/
15
16 FROM $RUST_BUILDER_IMAGE as docs
17 WORKDIR /app
18 COPY --chown=rust:rust docs ./docs
19 RUN mdbook build docs/
20
21 FROM alpine:3.12 as lemmy
22
23 # Install libpq for postgres
24 RUN apk add libpq
25
26 # Install Espeak for captchas
27 RUN apk add espeak
28
29 RUN addgroup -g 1000 lemmy
30 RUN adduser -D -s /bin/sh -u 1000 -G lemmy lemmy
31
32 # Copy resources
33 COPY --chown=lemmy:lemmy config/defaults.hjson /config/defaults.hjson
34 COPY --chown=lemmy:lemmy --from=rust /app/server/lemmy_server /app/lemmy
35 COPY --chown=lemmy:lemmy --from=docs /app/docs/book/ /app/documentation/
36
37 RUN chown lemmy:lemmy /app/lemmy
38 USER lemmy
39 EXPOSE 8536
40 CMD ["/app/lemmy"]