Dockerfile 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. ARG JITSI_REPO=jitsi
  2. ARG BASE_TAG=latest
  3. FROM ${JITSI_REPO}/base:${BASE_TAG} as builder
  4. RUN <<-EOF
  5. set -xe
  6. apt-dpkg-wrap apt-get update
  7. apt-dpkg-wrap apt-get install -y \
  8. build-essential \
  9. lua5.4 \
  10. liblua5.4-dev \
  11. libreadline-dev \
  12. git \
  13. unzip \
  14. wget
  15. mkdir /tmp/luarocks
  16. wget -qO - https://luarocks.github.io/luarocks/releases/luarocks-3.8.0.tar.gz | tar xfz - --strip-components 1 -C /tmp/luarocks
  17. cd /tmp/luarocks
  18. ./configure
  19. make
  20. make install
  21. cd -
  22. luarocks install basexx 0.4.1-1
  23. luarocks install lua-cjson 2.1.0-1
  24. luarocks install net-url 0.9-1
  25. EOF
  26. FROM ${JITSI_REPO}/base:${BASE_TAG}
  27. LABEL org.opencontainers.image.title="Prosody IM"
  28. LABEL org.opencontainers.image.description="XMPP server used for signalling."
  29. LABEL org.opencontainers.image.url="https://prosody.im/"
  30. LABEL org.opencontainers.image.source="https://github.com/jitsi/docker-jitsi-meet"
  31. LABEL org.opencontainers.image.documentation="https://jitsi.github.io/handbook/"
  32. ARG VERSION_JITSI_CONTRIB_PROSODY_PLUGINS="20230803"
  33. ARG VERSION_MATRIX_USER_VERIFICATION_SERVICE_PLUGIN="1.8.0"
  34. RUN <<-EOF
  35. set -xe
  36. wget -qO /etc/apt/trusted.gpg.d/prosody.gpg https://prosody.im/files/prosody-debian-packages.key
  37. echo "deb http://packages.prosody.im/debian $(lsb_release -sc) main" > /etc/apt/sources.list.d/prosody.list
  38. apt-dpkg-wrap apt-get update
  39. apt-dpkg-wrap apt-get install -y \
  40. lua5.4 \
  41. prosody \
  42. libldap-common \
  43. sasl2-bin \
  44. libsasl2-modules-ldap \
  45. lua-cyrussasl \
  46. lua-inspect \
  47. lua-ldap \
  48. lua-luaossl \
  49. lua-sec \
  50. lua-unbound
  51. apt-dpkg-wrap apt-get -d install -y jitsi-meet-prosody
  52. dpkg -x /var/cache/apt/archives/jitsi-meet-prosody*.deb /tmp/pkg
  53. mv /tmp/pkg/usr/share/jitsi-meet/prosody-plugins /prosody-plugins
  54. rm -rf /tmp/pkg /var/cache/apt
  55. apt-cleanup
  56. rm -rf /etc/prosody
  57. mv /usr/share/lua/5.3/inspect.lua /usr/share/lua/5.4/
  58. rm -rf /usr/lib/lua/{5.1,5.2,5.3}
  59. rm -rf /usr/share/lua/{5.1,5.2,5.3}
  60. wget -qO /prosody-plugins/mod_auth_cyrus.lua https://hg.prosody.im/prosody-modules/raw-file/65438e4ba563/mod_auth_cyrus/mod_auth_cyrus.lua
  61. wget -qO /prosody-plugins/sasl_cyrus.lua https://hg.prosody.im/prosody-modules/raw-file/65438e4ba563/mod_auth_cyrus/sasl_cyrus.lua
  62. wget https://github.com/matrix-org/prosody-mod-auth-matrix-user-verification/archive/refs/tags/v$VERSION_MATRIX_USER_VERIFICATION_SERVICE_PLUGIN.tar.gz
  63. tar -xf v$VERSION_MATRIX_USER_VERIFICATION_SERVICE_PLUGIN.tar.gz
  64. mv prosody-mod-auth-matrix-user-verification-$VERSION_MATRIX_USER_VERIFICATION_SERVICE_PLUGIN/mod_auth_matrix_user_verification.lua /prosody-plugins
  65. mv prosody-mod-auth-matrix-user-verification-$VERSION_MATRIX_USER_VERIFICATION_SERVICE_PLUGIN/mod_matrix_power_sync.lua /prosody-plugins
  66. rm -rf prosody-mod-auth-matrix-user-verification-$VERSION_MATRIX_USER_VERIFICATION_SERVICE_PLUGIN v$VERSION_MATRIX_USER_VERIFICATION_SERVICE_PLUGIN.tar.gz
  67. wget -q https://github.com/jitsi-contrib/prosody-plugins/archive/refs/tags/v$VERSION_JITSI_CONTRIB_PROSODY_PLUGINS.tar.gz
  68. tar -xf v$VERSION_JITSI_CONTRIB_PROSODY_PLUGINS.tar.gz
  69. mv prosody-plugins-$VERSION_JITSI_CONTRIB_PROSODY_PLUGINS/auth_hybrid_matrix_token/mod_auth_hybrid_matrix_token.lua /prosody-plugins
  70. mv prosody-plugins-$VERSION_JITSI_CONTRIB_PROSODY_PLUGINS/auth_hybrid_matrix_token/mod_matrix_affiliation.lua /prosody-plugins
  71. rm -rf prosody-plugins-$VERSION_JITSI_CONTRIB_PROSODY_PLUGINS v$VERSION_JITSI_CONTRIB_PROSODY_PLUGINS.tar.gz
  72. EOF
  73. COPY rootfs/ /
  74. COPY --from=builder /usr/local/lib/lua/5.4 /usr/local/lib/lua/5.4
  75. COPY --from=builder /usr/local/share/lua/5.4 /usr/local/share/lua/5.4
  76. EXPOSE 5222 5280
  77. VOLUME ["/config", "/prosody-plugins-custom"]