Files

68 lines
2.6 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 \
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"]