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