logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://anongit.hacktivis.me/git/pleroma.git/

Dockerfile (1798B)


  1. # https://hub.docker.com/r/hexpm/elixir/tags
  2. ARG ELIXIR_IMG=hexpm/elixir
  3. ARG ELIXIR_VER=1.17.3
  4. ARG ERLANG_VER=26.2.5.6
  5. ARG ALPINE_VER=3.17.9
  6. FROM ${ELIXIR_IMG}:${ELIXIR_VER}-erlang-${ERLANG_VER}-alpine-${ALPINE_VER} AS build
  7. COPY . .
  8. ENV MIX_ENV=prod
  9. ENV VIX_COMPILATION_MODE=PLATFORM_PROVIDED_LIBVIPS
  10. RUN apk add git gcc g++ musl-dev make cmake file-dev vips-dev &&\
  11. echo "import Config" > config/prod.secret.exs &&\
  12. mix local.hex --force &&\
  13. mix local.rebar --force &&\
  14. mix deps.clean --all &&\
  15. mix deps.get --only prod &&\
  16. mkdir release &&\
  17. mix release --path release
  18. FROM alpine:${ALPINE_VER}
  19. ARG BUILD_DATE
  20. ARG VCS_REF
  21. LABEL maintainer="ops@pleroma.social" \
  22. org.opencontainers.image.title="pleroma" \
  23. org.opencontainers.image.description="Pleroma for Docker" \
  24. org.opencontainers.image.authors="ops@pleroma.social" \
  25. org.opencontainers.image.vendor="pleroma.social" \
  26. org.opencontainers.image.documentation="https://git.pleroma.social/pleroma/pleroma" \
  27. org.opencontainers.image.licenses="AGPL-3.0" \
  28. org.opencontainers.image.url="https://pleroma.social" \
  29. org.opencontainers.image.revision=$VCS_REF \
  30. org.opencontainers.image.created=$BUILD_DATE
  31. ARG HOME=/opt/pleroma
  32. ARG DATA=/var/lib/pleroma
  33. RUN apk update &&\
  34. apk add exiftool ffmpeg vips libmagic ncurses postgresql-client &&\
  35. adduser --system --shell /bin/false --home ${HOME} pleroma &&\
  36. mkdir -p ${DATA}/uploads &&\
  37. mkdir -p ${DATA}/static &&\
  38. chown -R pleroma ${DATA} &&\
  39. mkdir -p /etc/pleroma &&\
  40. chown -R pleroma /etc/pleroma
  41. USER pleroma
  42. COPY --from=build --chown=pleroma:0 /release ${HOME}
  43. COPY --chown=pleroma --chmod=640 ./config/docker.exs /etc/pleroma/config.exs
  44. COPY ./docker-entrypoint.sh ${HOME}
  45. EXPOSE 4000
  46. ENTRYPOINT ["/opt/pleroma/docker-entrypoint.sh"]