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>
56 lines
2.0 KiB
Docker
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"]
|