From 8c9f4874122db68e64a3791d55b5b208f14ca3ca Mon Sep 17 00:00:00 2001 From: Luna Date: Sun, 22 Jan 2023 18:49:46 -0300 Subject: [PATCH] add pleroma_source_selfbuilt image for patching pleroma --- Dockerfile.pleroma-source | 46 ++++++++++++++++++++++++++++++ files/pleroma_source_entrypoint.sh | 14 +++++++++ pleroma_setup.sh | 4 ++- 3 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 Dockerfile.pleroma-source create mode 100755 files/pleroma_source_entrypoint.sh diff --git a/Dockerfile.pleroma-source b/Dockerfile.pleroma-source new file mode 100644 index 0000000..0c8ce2c --- /dev/null +++ b/Dockerfile.pleroma-source @@ -0,0 +1,46 @@ +FROM elixir:1.11.4-alpine + +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 \ + exiftool imagemagick libmagic ncurses postgresql-client ffmpeg + +RUN addgroup -g ${GID} pleroma \ + && adduser -h /pleroma -s /bin/false -D -G pleroma -u ${UID} pleroma + +ARG DATA=/var/lib/pleroma +RUN mkdir -p /etc/pleroma \ + && chown -R pleroma /etc/pleroma \ + && mkdir -p ${DATA}/uploads \ + && mkdir -p ${DATA}/static \ + && chown -R pleroma ${DATA} + +USER pleroma +WORKDIR /pleroma + +RUN git clone -b develop https://git.pleroma.social/pleroma/pleroma.git /pleroma \ + && git checkout ${PLEROMA_VER} + +USER root +COPY ./minica.pem /usr/local/share/ca-certificates/minica.crt +RUN update-ca-certificates + +USER pleroma + +RUN mix local.hex --force \ + && mix local.rebar --force \ + && mix deps.get --only prod \ + && mix deps.compile --only prod \ + && mix compile --only prod + +COPY ./files/pleroma.exs config/prod.secret.exs +COPY ./files/pleroma_source_entrypoint.sh docker-entrypoint.sh + +EXPOSE 4000 + +ENTRYPOINT ["/pleroma/docker-entrypoint.sh"] diff --git a/files/pleroma_source_entrypoint.sh b/files/pleroma_source_entrypoint.sh new file mode 100755 index 0000000..87aaeda --- /dev/null +++ b/files/pleroma_source_entrypoint.sh @@ -0,0 +1,14 @@ +#!/bin/ash + +set -eux + +echo "-- Waiting for database..." +while ! pg_isready -U ${DB_USER:-pleroma} -d postgres://${DB_HOST:-db}:${DB_PORT:-5432}/${DB_NAME:-pleroma} -t 1; do + sleep 1s +done + +echo "-- Running migrations..." +mix ecto.migrate + +echo "-- Starting!" +mix phx.server diff --git a/pleroma_setup.sh b/pleroma_setup.sh index 870a43b..0ec5b76 100755 --- a/pleroma_setup.sh +++ b/pleroma_setup.sh @@ -2,9 +2,10 @@ # # setup pleroma db +set -eux docker-compose up -d pleroma_db docker-compose up -d pleroma2_db -sleep 10 +sleep 10 # waiting for databases to warm up docker-compose exec -i pleroma_db psql -U pleroma -c "CREATE EXTENSION IF NOT EXISTS citext;" docker-compose exec -i pleroma_db psql -U pleroma -c "CREATE EXTENSION IF NOT EXISTS pg_trgm;" docker-compose exec -i pleroma_db psql -U pleroma -c 'CREATE EXTENSION IF NOT EXISTS "uuid-ossp";' @@ -14,3 +15,4 @@ docker-compose exec -i pleroma2_db psql -U pleroma -c 'CREATE EXTENSION IF NOT E docker-compose down docker buildx build -t pleroma_selfbuilt -f ./Dockerfile.pleroma . +docker buildx build -t pleroma_source_selfbuilt -f ./Dockerfile.pleroma-source .