FROM ubuntu:20.04 AS unzip

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && \
    apt-get install -y --no-install-recommends unzip

# Set the flavour arg to the string you got in Detecting flavour section.
# For example if the flavour is `amd64` the command will be
ARG FLAVOUR=amd64

# Clone the release build into a temporary directory and unpack it
# We use ADD here to bust the cache if the pleroma release changes
# We use a separate layer for extraction so we don't end up with junk
# from ADD left over in the final image.
ADD https://git.pleroma.social/api/v4/projects/2/jobs/artifacts/stable/download?job=${FLAVOUR} /tmp/pleroma.zip

RUN mkdir -p /opt/pleroma && \
    unzip /tmp/pleroma.zip -d /tmp/ && \
    mv /tmp/release/* /opt/pleroma

# Ok, really build the container now
FROM ubuntu:20.04 AS pleroma

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
      ca-certificates curl dumb-init ffmpeg gnupg imagemagick libimage-exiftool-perl libmagic-dev libncurses5 locales unzip && \
    curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - && \
    echo "deb http://apt.postgresql.org/pub/repos/apt/ focal-pgdg main" > /etc/apt/sources.list.d/postgres.list && \
    apt-get update && \
    apt-get install -y --no-install-recommends postgresql-client-13 && \
    apt-get clean

RUN echo 'en_US.UTF-8 UTF-8' > /etc/locale.gen && \
    locale-gen

ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8


RUN mkdir -p /etc/pleroma /var/lib/pleroma/static /var/lib/pleroma/uploads && \
    adduser --system --shell /bin/false --home /opt/pleroma --group pleroma && \
    chown -vR pleroma /etc/pleroma /var/lib/pleroma

COPY --chown=pleroma:pleroma --from=unzip /opt/pleroma/ /opt/pleroma/

VOLUME [ "/etc/pleroma", "/var/lib/pleroma/uploads", "/var/lib/pleroma/static" ]

USER pleroma

COPY *.sh /opt/pleroma/bin/

ENTRYPOINT [ "/usr/bin/dumb-init" ]

WORKDIR /opt/pleroma

ENV PATH=/opt/pleroma/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV PLEROMA_CONFIG_PATH=/etc/pleroma/config.exs

EXPOSE 4000

STOPSIGNAL SIGTERM

HEALTHCHECK \
    --start-period=2m \
    --interval=5m \
    CMD curl --fail http://localhost:4000/api/v1/instance || exit 1

CMD [ "run-pleroma.sh" ]