Basic working Dockerfile
authorAshlynn Anderson <pea@pea.sh>
Wed, 31 Jul 2019 23:35:14 +0000 (19:35 -0400)
committerAshlynn Anderson <pea@pea.sh>
Sat, 3 Aug 2019 04:21:54 +0000 (00:21 -0400)
No fancy script or minit automatic migration, etc, but if you start
the docker image and go in and manually do everything, it works.

Dockerfile [new file with mode: 0644]

diff --git a/Dockerfile b/Dockerfile
new file mode 100644 (file)
index 0000000..667c01b
--- /dev/null
@@ -0,0 +1,32 @@
+FROM rinpatch/elixir:1.9.0-rc.0-alpine as build
+
+COPY . .
+
+ENV MIX_ENV prod
+
+RUN apk add git gcc g++ musl-dev make &&\
+       echo "import Mix.Config" > config/prod.secret.exs &&\
+       mix local.hex --force &&\
+       mix local.rebar --force
+
+RUN mix deps.get --only prod &&\
+       mkdir release &&\
+       mix release --path release
+
+FROM alpine:latest
+
+RUN echo "http://nl.alpinelinux.org/alpine/latest-stable/community" >> /etc/apk/repositories &&\
+       apk update &&\
+       apk add ncurses postgresql-client
+
+RUN adduser --system --shell /bin/false --home /opt/pleroma pleroma &&\
+       mkdir -p /var/lib/pleroma/uploads &&\
+       chown -R pleroma /var/lib/pleroma &&\
+       mkdir -p /var/lib/pleroma/static &&\
+       chown -R pleroma /var/lib/pleroma &&\
+       mkdir -p /etc/pleroma &&\
+       chown -R pleroma /etc/pleroma
+
+USER pleroma
+
+COPY --from=build --chown=pleroma:0 /release/ /opt/pleroma/