-FROM hexpm/elixir:1.13.4-erlang-24.3.4.2-alpine-3.16.0 as build
-
-COPY . .
+FROM hexpm/elixir:1.13.4-erlang-24.3.4.5-alpine-3.15.6
ENV MIX_ENV=prod
+ENV ERL_EPMD_ADDRESS=127.0.0.1
-RUN apk add git gcc g++ musl-dev make cmake file-dev &&\
- echo "import 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:3.16
-
-ARG BUILD_DATE
-ARG VCS_REF
+ARG HOME=/opt/akkoma
LABEL org.opencontainers.image.title="akkoma" \
org.opencontainers.image.description="Akkoma for Docker" \
org.opencontainers.image.revision=$VCS_REF \
org.opencontainers.image.created=$BUILD_DATE
-ARG HOME=/opt/akkoma
-ARG DATA=/var/lib/akkoma
+RUN apk add git gcc g++ musl-dev make cmake file-dev exiftool ffmpeg imagemagick libmagic ncurses postgresql-client
-RUN apk update &&\
- apk add exiftool ffmpeg imagemagick libmagic ncurses postgresql-client &&\
- adduser --system --shell /bin/false --home ${HOME} akkoma &&\
- mkdir -p ${DATA}/uploads &&\
- mkdir -p ${DATA}/static &&\
- chown -R akkoma ${DATA} &&\
- mkdir -p /etc/akkoma &&\
- chown -R akkoma /etc/akkoma
+EXPOSE 4000
-USER akkoma
+ARG UID=1000
+ARG GID=1000
+ARG UNAME=akkoma
-COPY --from=build --chown=akkoma:0 /release ${HOME}
+RUN addgroup -g $GID $UNAME
+RUN adduser -u $UID -G $UNAME -D -h $HOME $UNAME
-COPY ./config/docker.exs /etc/akkoma/config.exs
-COPY ./docker-entrypoint.sh ${HOME}
+WORKDIR /opt/akkoma
-EXPOSE 4000
+USER $UNAME
+RUN mix local.hex --force &&\
+ mix local.rebar --force
-ENTRYPOINT ["/opt/akkoma/docker-entrypoint.sh"]
+CMD ["/opt/akkoma/docker-entrypoint.sh"]