Files
upstream-mirror 1d2bfcac0c
Some checks failed
Prosody Plugin Tests / test (push) Failing after 10m11s
Close stale issues and PRs / stale (push) Failing after 1s
snapshot of https://github.com/jitsi/jitsi-meet.git @ fd1749dd28f4138aa80234fc7f311b19aaffa0e7 (2026-09-15)
2026-09-15 15:56:32 +05:00

62 lines
2.9 KiB
Docker

# Prosody 0.13+ with Jitsi plugins for integration testing.
# Builder stage: compile/install Lua libraries that aren't available as apt
# packages for Lua 5.4 in the prosodyim base image.
FROM prosodyim/prosody:13.0 AS builder
USER root
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
build-essential \
liblua5.4-dev \
&& luarocks --lua-version 5.4 install basexx \
&& rm -rf /var/lib/apt/lists/*
# Final image
FROM prosodyim/prosody:13.0
USER root
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
lua-cjson \
lua-inspect \
lua-luaossl \
&& mv /usr/share/lua/5.3/inspect.lua /usr/share/lua/5.4/ \
&& rm -rf /var/lib/apt/lists/*
# Copy luarocks-installed pure-Lua libs from builder.
COPY --from=builder /usr/local/share/lua/5.4 /usr/local/share/lua/5.4
# Copy all plugins into a dedicated path (added to plugin_paths in the config).
# The tests/ directory is also copied but Prosody only loads explicitly named modules.
COPY --chown=prosody:prosody resources/prosody-plugins/ /opt/prosody-jitsi-plugins/
# inspect.lua is required by several Jitsi plugins for debug logging.
# Provide a minimal stub so those modules load without needing luarocks.
COPY --chown=prosody:prosody tests/prosody/docker/inspect.lua /opt/prosody-jitsi-plugins/inspect.lua
COPY --chown=prosody:prosody tests/prosody/docker/prosody.cfg.lua /etc/prosody/prosody.cfg.lua
COPY --chown=prosody:prosody tests/prosody/docker/cfg/ /etc/prosody/cfg/
# Test ASAP public keys — served by mod_test_observer_http for RS256 token verification tests.
# Two separate key pairs are used: one for login tokens (mod_auth_token) and one for system
# tokens (mod_muc_end_meeting and similar HTTP API modules).
COPY --chown=prosody:prosody tests/prosody/fixtures/test-asap-public.pem /opt/prosody-jitsi-plugins/test-asap-public.pem
COPY --chown=prosody:prosody tests/prosody/fixtures/test-system-asap-public.pem /opt/prosody-jitsi-plugins/test-system-asap-public.pem
# Pre-create the focus admin account (focus@auth.localhost, password "focussecret").
# prosodyctl register writes properly hashed credentials (SCRAM-SHA-*) directly
# to the data directory without requiring a running Prosody instance — it just
# reads the config for data_path and the VirtualHost definition.
RUN prosodyctl register focus auth.localhost focussecret \
&& chown -R prosody:prosody /var/lib/prosody
# Pre-create Jibri and transcriber accounts used by mod_muc_cleanup_backend_services tests.
# recorder@recorder.localhost — is_jibri() matches (starts with 'recorder@recorder.')
# transcriber@recorder.localhost — is_transcriber() matches (starts with 'transcriber@recorder.')
RUN prosodyctl register recorder recorder.localhost recordersecret \
&& prosodyctl register transcriber recorder.localhost transcribersecret \
&& chown -R prosody:prosody /var/lib/prosody