Files
vnctalk-prosody/Dockerfile
T
Stefan-Sanger 26e7512b24 feat: upgrade Prosody 0.12.6 → 13.0.6 (milestone 3)
Bump Dockerfile to prosody-13.0.6; all 8 patches re-ported against 13.0.6.

Re-ported patches (3 changed, 5 applied with offset):
- hidden.lib.patch: 13.0 uses module:may() instead of um_is_admin; changed
  to 'if restrict_public then' (same intent: hide option for everyone)
- mod_muc.patch: 13.0 added restrict_pm between register and
  presence_broadcast; updated hunk 1 context
- mod_muc_unique.patch: 13.0 uses 'require "prosody.util.stanza"'
  (namespaced); updated context
- muc.lib, mod_carbons, mod_mam, mod_muc_mam, register.lib: applied
  with line offsets, no re-port needed

Config changes:
- Remove mod_posix from modules_enabled (13.0 absorbed signal handling,
  pidfile, and run_as_root check into core util/startup.lua)
- Move pubsub from modules_enabled to Component (13.0 requires pubsub
  to be loaded as a component, not a module)

Test fix:
- test_muc_fcm_push_to_offline_member: wait for count=2 captures instead
  of 1 — mod_vnc_muc_fcm pushes to ALL affiliated members (including
  sender, because it can't see main-host sessions from the MUC
  component); the test was racing on which push arrived first

Verified: prosodyctl check config passes; compose-harness testsuite
green (80 passed, 6 skipped, 0 failed).

Part-of: <http://gitlab.vnc.biz/uxf/vnctalk-prosody/-/merge_requests/3>
2026-07-15 17:58:02 +02:00

56 lines
2.0 KiB
Docker

FROM alpine:3.23.4 AS builder
RUN apk update && apk upgrade && \
apk add gettext lua5.4 lua5.4-socket lua5.4-dbi-postgresql lua5.4-expat lua5.4-sql-postgres \
lua5.4-filesize lua5.4-lpeg lua5.4-hiredis lua5.4-filesystem lua5.4-ldap \
lua5.4-sec lua5.4-lzlib lua5.4-cjson lua5.4-dev \
libidn-dev libidn icu icu-dev libpq postgresql-dev make gcc expat expat-dev \
libxmlb-dev libc-dev openssl openssl-dev htop nodejs nodejs-dev \
libc-dev g++ yarn nagios-plugins-tcp patch && \
rm -rf /var/cache/apk/*
RUN wget https://prosody.im/downloads/source/prosody-13.0.6.tar.gz && tar xvfz prosody-13.0.6.tar.gz
ADD patches /vnc/patches
RUN cd prosody-13.0.6/ && \
for p in /vnc/patches/*.patch; do patch -p1 --fuzz=0 < "$p"; done
# --idn-library=idn: 0.12+ defaults to ICU, but the runtime image ships no ICU
# data files (U_FILE_ACCESS_ERROR); stick with libidn as 0.11 did
RUN cd prosody-13.0.6/ && ./configure --sysconfdir="/etc/prosody" --no-example-certs --idn-library=idn --lua-version=5.4 && \
make && make install
RUN mkdir -p /vnc && mkdir -p /var/run/prosody/ && \
mkdir -p /var/log/prosody/ && \
mkdir -p /etc/prosody/public && mkdir -p /etc/tls-update
RUN yarn global add http-server
FROM alpine:3.23.4
RUN apk update && apk upgrade && \
apk add gettext lua5.4 lua5.4-socket lua5.4-dbi-postgresql lua5.4-expat lua5.4-sql-postgres \
lua5.4-filesize lua5.4-lpeg lua5.4-hiredis lua5.4-filesystem lua5.4-ldap \
lua5.4-sec lua5.4-lzlib lua5.4-cjson \
libidn-dev libidn icu libpq expat \
openssl nodejs nagios-plugins-tcp && \
rm -rf /var/cache/apk/*
COPY --from=builder /usr/local/ /usr/local/
RUN mkdir /vnc && mkdir -p /var/log/prosody/ && \
mkdir -p /etc/prosody/public && mkdir -p /etc/tls-update
RUN addgroup -g 1001 prosody
RUN adduser -D -u 1001 -S -h /var/lib/prosody -H -G prosody prosody
ADD vnctalk /vnc/vnctalk
RUN cd /vnc/vnctalk && cp -Rp * /usr/local/lib/prosody/modules/
ADD config /vnc/config
USER prosody
ENV __FLUSH_LOG=yes
CMD ["/vnc/config/startup.sh"]