Fork of Pleroma with site-specific changes and feature branches https://git.pleroma.social/pleroma/pleroma
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.5KB

  1. FROM elixir:1.9-alpine as build
  2. COPY . .
  3. ENV MIX_ENV=prod
  4. RUN apk add git gcc g++ musl-dev make cmake file-dev &&\
  5. echo "import Mix.Config" > config/prod.secret.exs &&\
  6. mix local.hex --force &&\
  7. mix local.rebar --force &&\
  8. mix deps.get --only prod &&\
  9. mkdir release &&\
  10. mix release --path release
  11. FROM alpine:3.11
  12. ARG BUILD_DATE
  13. ARG VCS_REF
  14. LABEL maintainer="ops@pleroma.social" \
  15. org.opencontainers.image.title="pleroma" \
  16. org.opencontainers.image.description="Pleroma for Docker" \
  17. org.opencontainers.image.authors="ops@pleroma.social" \
  18. org.opencontainers.image.vendor="pleroma.social" \
  19. org.opencontainers.image.documentation="https://git.pleroma.social/pleroma/pleroma" \
  20. org.opencontainers.image.licenses="AGPL-3.0" \
  21. org.opencontainers.image.url="https://pleroma.social" \
  22. org.opencontainers.image.revision=$VCS_REF \
  23. org.opencontainers.image.created=$BUILD_DATE
  24. ARG HOME=/opt/pleroma
  25. ARG DATA=/var/lib/pleroma
  26. RUN echo "http://nl.alpinelinux.org/alpine/latest-stable/community" >> /etc/apk/repositories &&\
  27. apk update &&\
  28. apk add exiftool ffmpeg imagemagick libmagic ncurses postgresql-client &&\
  29. adduser --system --shell /bin/false --home ${HOME} pleroma &&\
  30. mkdir -p ${DATA}/uploads &&\
  31. mkdir -p ${DATA}/static &&\
  32. chown -R pleroma ${DATA} &&\
  33. mkdir -p /etc/pleroma &&\
  34. chown -R pleroma /etc/pleroma
  35. USER pleroma
  36. COPY --from=build --chown=pleroma:0 /release ${HOME}
  37. COPY ./config/docker.exs /etc/pleroma/config.exs
  38. COPY ./docker-entrypoint.sh ${HOME}
  39. EXPOSE 4000
  40. ENTRYPOINT ["/opt/pleroma/docker-entrypoint.sh"]