From b49f72152040bc600b55c0c41c584522cbbe1cf6 Mon Sep 17 00:00:00 2001 From: Ronny Trommer Date: Tue, 7 Jul 2026 16:51:32 +0200 Subject: [PATCH] feat(pleroma): update to v2.10.2 Pleroma 2.10.2 requires Elixir ~> 1.15, so this is a toolchain upgrade, not a plain version bump. Changes: - version-lock.sh: PLEROMA_VERSION v2.9.1 -> v2.10.2; runtime BASE_IMAGE alpine:3.21.3 -> alpine:3.20.9 (aligned with the build base's alpine so the Vix/libvips NIF stays ABI-compatible under PLATFORM_PROVIDED_LIBVIPS). - release.tag: pleroma:2.9.1 -> pleroma:2.10.2. - base_images.sh: LANG_ELIXIR -> hexpm/elixir:1.17.3-erlang-26.2.5.21-alpine-3.20.9. Keeps Pleroma's tested Elixir 1.17.3, but pins Erlang 26.2.5.21 rather than upstream's 26.2.5.6: 26.2.5.6's TLS validator rejects builds.hex.pm's current Let's Encrypt chain (key_usage_mismatch on the technically-constrained intermediate), which aborts `mix local.hex` during the build; 26.2.5.21 carries the OTP fix. - Dockerfile.tpl: `import Mix.Config` -> `import Config` (required on Elixir >= 1.15); clone the pinned tag directly (`git clone -b $VER --depth 1`); add `--chmod=640` to the config.exs COPY, because 2.10.2's ReleaseRuntimeProvider refuses to boot with a world-permissioned config (matches upstream 2.10.2). Verified: native arm64 image builds, boots through the 2.10.2 config provider, and the Vix NIF loads runtime alpine 3.20.9 libvips 8.15.2. The amd64 leg is left to CI's native x86 runner (local linux/amd64 segfaults the emulated BEAM under QEMU on this Apple Silicon host). Assisted-by: ClaudeCode:claude-opus-4-8 Signed-off-by: Ronny Trommer --- base_images.sh | 2 +- pleroma/Dockerfile.tpl | 8 +++----- pleroma/release.tag | 2 +- pleroma/version-lock.sh | 4 ++-- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/base_images.sh b/base_images.sh index adf2bbc..e78ddee 100644 --- a/base_images.sh +++ b/base_images.sh @@ -9,4 +9,4 @@ export LANG_JDK_11="quay.io/labmonkeys/openjdk:jdk-11.0.24.b186" export LANG_JRE_17="quay.io/labmonkeys/openjdk:jre-17.0.12.b187" export LANG_JDK_17="quay.io/labmonkeys/openjdk:jdk-17.0.12.b189" export LANG_PYTHON_3="python:3-slim" -export LANG_ELIXIR="hexpm/elixir:1.14.5-erlang-24.2.2-alpine-3.21.1" +export LANG_ELIXIR="hexpm/elixir:1.17.3-erlang-26.2.5.21-alpine-3.20.9" diff --git a/pleroma/Dockerfile.tpl b/pleroma/Dockerfile.tpl index 2860622..77e7432 100644 --- a/pleroma/Dockerfile.tpl +++ b/pleroma/Dockerfile.tpl @@ -9,13 +9,11 @@ ENV MIX_ENV=prod ENV VIX_COMPILATION_MODE=PLATFORM_PROVIDED_LIBVIPS RUN apk add --no-cache git gcc g++ musl-dev make cmake file-dev vips-dev && \ - git clone -b develop https://git.pleroma.social/pleroma/pleroma.git /usr/src/pleroma + git clone -b ${PLEROMA_VERSION} --depth 1 https://git.pleroma.social/pleroma/pleroma.git /usr/src/pleroma WORKDIR /usr/src/pleroma -RUN git checkout ${PLEROMA_VERSION} - -RUN echo "import Mix.Config" > config/prod.secret.exs && \ +RUN echo "import Config" > config/prod.secret.exs && \ mix local.hex --force && \ mix local.rebar --force && \ mix deps.get --only prod && \ @@ -37,7 +35,7 @@ RUN apk add --no-cache exiftool ffmpeg vips libmagic ncurses postgresql-client & chown -R pleroma /var/lib/pleroma COPY --from=build --chown=pleroma:0 /release /pleroma -COPY --from=build --chown=pleroma:0 /usr/src/pleroma/config/docker.exs /etc/pleroma/config.exs +COPY --from=build --chown=pleroma:0 --chmod=640 /usr/src/pleroma/config/docker.exs /etc/pleroma/config.exs COPY --from=build --chown=pleroma:0 /usr/src/pleroma/docker-entrypoint.sh /pleroma WORKDIR /pleroma diff --git a/pleroma/release.tag b/pleroma/release.tag index df69426..ad21fad 100644 --- a/pleroma/release.tag +++ b/pleroma/release.tag @@ -1 +1 @@ -pleroma:2.9.1 +pleroma:2.10.2 diff --git a/pleroma/version-lock.sh b/pleroma/version-lock.sh index da43513..5ea03d3 100644 --- a/pleroma/version-lock.sh +++ b/pleroma/version-lock.sh @@ -10,7 +10,7 @@ export VCS_SOURCE export VCS_REVISION export DATE export BASE_IMAGE_BUILD="${LANG_ELIXIR}" -export BASE_IMAGE="alpine:3.21.3" -export PLEROMA_VERSION="v2.9.1" +export BASE_IMAGE="alpine:3.20.9" +export PLEROMA_VERSION="v2.10.2" export PLATFORMS="linux/amd64,linux/arm64"