FROM elixir:1.10-alpine as build

WORKDIR /pleroma

ARG PLEROMA_VER=develop
ARG UID=911
ARG GID=911
ENV MIX_ENV=prod

RUN echo "http://nl.alpinelinux.org/alpine/latest-stable/community" >> /etc/apk/repositories &&\
    apk update &&\
    apk add git gcc g++ musl-dev make cmake file-dev

RUN git clone -b develop https://git.pleroma.social/pleroma/pleroma.git /pleroma && \
    git checkout ${PLEROMA_VER}

RUN echo "import Mix.Config" > config/prod.secret.exs &&\
    mix local.hex --force &&\
    mix local.rebar --force &&\
    mix deps.get --only prod &&\
    mkdir /release &&\
    mix release --path /release

FROM alpine

ARG HOME=/pleroma
ARG DATA=/var/lib/pleroma

RUN apk update &&\
	apk add exiftool ffmpeg imagemagick libmagic ncurses postgresql-client &&\
	adduser --system --shell /bin/false --home ${HOME} pleroma &&\
	mkdir -p ${DATA}/uploads &&\
	mkdir -p ${DATA}/static &&\
	chown -R pleroma /var &&\
	chown -R pleroma /tmp &&\
	mkdir -p /etc/pleroma &&\
	chown -R pleroma /etc/pleroma

USER pleroma

COPY --from=build --chown=pleroma:0 /release ${HOME}
COPY --from=build --chown=pleroma:0 /pleroma/docker-entrypoint.sh ${HOME}

COPY ./config.exs /etc/pleroma/config.exs

EXPOSE 4000

ENTRYPOINT ["/pleroma/docker-entrypoint.sh"]