62 lines
2.9 KiB
Docker
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
|