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 \ lua-unbound \ 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/* ARG PROSODY_VERSION=13.0.6 ARG PROSODY_TARBALL_SHA256=ec696f9cf562c3af4a04b07d3fb36a1cedcc4e69a392fddcfc524bc67d93050f # Download the Prosody source and verify its SHA256 so a tampered or corrupt # download fails the build loudly instead of producing a broken image. RUN wget -O prosody-${PROSODY_VERSION}.tar.gz https://prosody.im/downloads/source/prosody-${PROSODY_VERSION}.tar.gz && \ echo "${PROSODY_TARBALL_SHA256} prosody-${PROSODY_VERSION}.tar.gz" | sha256sum -c - && \ tar xzf prosody-${PROSODY_VERSION}.tar.gz && \ rm prosody-${PROSODY_VERSION}.tar.gz ADD patches /vnc/patches RUN cd prosody-${PROSODY_VERSION}/ && \ 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-${PROSODY_VERSION}/ && ./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@14.1.1 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 \ lua-unbound \ libidn-dev libidn icu libpq postgresql-client 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/ RUN cp /vnc/vnctalk/vnc_fcm_common.lua /usr/local/lib/prosody/ ADD config /vnc/config ADD db-customization /vnc/db-customization USER prosody ENV __FLUSH_LOG=yes CMD ["/vnc/config/startup.sh"]