Dockerfile 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. ARG JITSI_REPO=jitsi
  2. ARG BASE_TAG=latest
  3. FROM ${JITSI_REPO}/base:${BASE_TAG} AS builder
  4. RUN apt-dpkg-wrap apt-get update && \
  5. apt-dpkg-wrap apt-get install -y \
  6. build-essential \
  7. lua5.4 \
  8. liblua5.4-dev \
  9. libreadline-dev \
  10. git \
  11. unzip \
  12. wget && \
  13. mkdir /tmp/luarocks && \
  14. wget -qO - https://luarocks.github.io/luarocks/releases/luarocks-3.8.0.tar.gz | tar xfz - --strip-components 1 -C /tmp/luarocks && \
  15. cd /tmp/luarocks && ./configure && make && make install && cd - && \
  16. luarocks install basexx 0.4.1-1 && \
  17. luarocks install lua-cjson 2.1.0-1 && \
  18. luarocks install net-url 0.9-1
  19. FROM ${JITSI_REPO}/base:${BASE_TAG}
  20. LABEL org.opencontainers.image.title="Prosody IM"
  21. LABEL org.opencontainers.image.description="XMPP server used for signalling."
  22. LABEL org.opencontainers.image.url="https://prosody.im/"
  23. LABEL org.opencontainers.image.source="https://github.com/jitsi/docker-jitsi-meet"
  24. LABEL org.opencontainers.image.documentation="https://jitsi.github.io/handbook/"
  25. ARG VERSION_JITSI_CONTRIB_PROSODY_PLUGINS="20241017"
  26. ARG VERSION_MATRIX_USER_VERIFICATION_SERVICE_PLUGIN="1.8.0"
  27. ARG PROSODY_FROM_URL="false"
  28. ARG PROSODY_FROM_URL_VERSION="0.12.5"
  29. RUN dpkgArch="$(dpkg --print-architecture)" && \
  30. case "${dpkgArch##*-}" in \
  31. "amd64") PROSODY_ARCH=amd64 ;; \
  32. "arm64") PROSODY_ARCH=arm64 ;; \
  33. *) echo "unsupported architecture"; exit 1 ;; \
  34. esac && \
  35. set -x && \
  36. apt-dpkg-wrap apt-get update && \
  37. apt-dpkg-wrap apt-get install -y \
  38. lua5.4 \
  39. libldap-common \
  40. sasl2-bin \
  41. libsasl2-modules-ldap \
  42. lua-cyrussasl \
  43. lua-inspect \
  44. lua-ldap \
  45. lua-luaossl \
  46. lua-sec \
  47. lua-unbound \
  48. ssl-cert \
  49. libicu72 \
  50. lua-expat \
  51. lua-filesystem && \
  52. if [ "$PROSODY_FROM_URL" = "true" ]; then \
  53. wget -qO /tmp/prosody.deb "https://packages.prosody.im/debian/pool/main/p/prosody/prosody_${PROSODY_FROM_URL_VERSION}-1~bookworm1_${PROSODY_ARCH}.deb" &&\
  54. dpkg -i /tmp/prosody.deb && \
  55. rm /tmp/prosody.deb ; \
  56. else \
  57. wget -qO /etc/apt/trusted.gpg.d/prosody.gpg https://prosody.im/files/prosody-debian-packages.key && \
  58. echo "deb http://packages.prosody.im/debian bookworm main" > /etc/apt/sources.list.d/prosody.list && \
  59. apt-dpkg-wrap apt-get update && \
  60. apt-dpkg-wrap apt-get install -y prosody ; \
  61. fi && \
  62. apt-dpkg-wrap apt-get -d install -y jitsi-meet-prosody && \
  63. dpkg -x /var/cache/apt/archives/jitsi-meet-prosody*.deb /tmp/pkg && \
  64. rm /tmp/pkg/usr/share/jitsi-meet/prosody-plugins/mod_smacks.lua && \
  65. mv /tmp/pkg/usr/share/jitsi-meet/prosody-plugins /prosody-plugins && \
  66. rm -rf /tmp/pkg /var/cache/apt && \
  67. apt-cleanup && \
  68. rm -rf /etc/prosody && \
  69. mv /usr/share/lua/5.3/inspect.lua /usr/share/lua/5.4/ && \
  70. rm -rf /usr/lib/lua/{5.1,5.2,5.3} && \
  71. rm -rf /usr/share/lua/{5.1,5.2,5.3} && \
  72. wget -qO /prosody-plugins/mod_auth_cyrus.lua https://hg.prosody.im/prosody-modules/raw-file/65438e4ba563/mod_auth_cyrus/mod_auth_cyrus.lua && \
  73. wget -qO /prosody-plugins/sasl_cyrus.lua https://hg.prosody.im/prosody-modules/raw-file/65438e4ba563/mod_auth_cyrus/sasl_cyrus.lua && \
  74. wget -qO /prosody-plugins/mod_http_health.lua https://hg.prosody.im/prosody-modules/raw-file/2b80188448d1/mod_http_health/mod_http_health.lua && \
  75. wget -qO /prosody-plugins/mod_muc_moderation.lua https://hg.prosody.im/prosody-modules/raw-file/a58fb6a05412/mod_muc_moderation/mod_muc_moderation.lua && \
  76. wget https://github.com/matrix-org/prosody-mod-auth-matrix-user-verification/archive/refs/tags/v$VERSION_MATRIX_USER_VERIFICATION_SERVICE_PLUGIN.tar.gz && \
  77. tar -xf v$VERSION_MATRIX_USER_VERIFICATION_SERVICE_PLUGIN.tar.gz && \
  78. mv prosody-mod-auth-matrix-user-verification-$VERSION_MATRIX_USER_VERIFICATION_SERVICE_PLUGIN/mod_auth_matrix_user_verification.lua /prosody-plugins && \
  79. mv prosody-mod-auth-matrix-user-verification-$VERSION_MATRIX_USER_VERIFICATION_SERVICE_PLUGIN/mod_matrix_power_sync.lua /prosody-plugins && \
  80. rm -rf prosody-mod-auth-matrix-user-verification-$VERSION_MATRIX_USER_VERIFICATION_SERVICE_PLUGIN v$VERSION_MATRIX_USER_VERIFICATION_SERVICE_PLUGIN.tar.gz && \
  81. wget -q https://github.com/jitsi-contrib/prosody-plugins/archive/refs/tags/v$VERSION_JITSI_CONTRIB_PROSODY_PLUGINS.tar.gz && \
  82. tar -xf v$VERSION_JITSI_CONTRIB_PROSODY_PLUGINS.tar.gz && \
  83. mkdir /prosody-plugins-contrib && \
  84. cp -a prosody-plugins-$VERSION_JITSI_CONTRIB_PROSODY_PLUGINS/* /prosody-plugins-contrib && \
  85. rm -rf prosody-plugins-$VERSION_JITSI_CONTRIB_PROSODY_PLUGINS v$VERSION_JITSI_CONTRIB_PROSODY_PLUGINS.tar.gz
  86. COPY rootfs/ /
  87. COPY --from=builder /usr/local/lib/lua/5.4 /usr/local/lib/lua/5.4
  88. COPY --from=builder /usr/local/share/lua/5.4 /usr/local/share/lua/5.4
  89. EXPOSE 5222 5280
  90. VOLUME ["/config", "/prosody-plugins-custom"]