complement-synapse-workers: factor out separate entry point script (#12467)
... with a bit more verbosity.
This commit is contained in:
parent
a743f7d33e
commit
960b4fb409
|
@ -0,0 +1 @@
|
||||||
|
complement-synapse-workers: factor out separate entry point script.
|
|
@ -13,8 +13,8 @@ RUN curl -OL "https://github.com/caddyserver/caddy/releases/download/v2.3.0/cadd
|
||||||
tar xzf caddy_2.3.0_linux_amd64.tar.gz && rm caddy_2.3.0_linux_amd64.tar.gz && mv caddy /root
|
tar xzf caddy_2.3.0_linux_amd64.tar.gz && rm caddy_2.3.0_linux_amd64.tar.gz && mv caddy /root
|
||||||
|
|
||||||
# Install postgresql
|
# Install postgresql
|
||||||
RUN apt-get update
|
RUN apt-get update && \
|
||||||
RUN apt-get install -y postgresql
|
DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y postgresql-13
|
||||||
|
|
||||||
# Configure a user and create a database for Synapse
|
# Configure a user and create a database for Synapse
|
||||||
RUN pg_ctlcluster 13 main start && su postgres -c "echo \
|
RUN pg_ctlcluster 13 main start && su postgres -c "echo \
|
||||||
|
@ -34,40 +34,14 @@ WORKDIR /data
|
||||||
# Copy the caddy config
|
# Copy the caddy config
|
||||||
COPY conf-workers/caddy.complement.json /root/caddy.json
|
COPY conf-workers/caddy.complement.json /root/caddy.json
|
||||||
|
|
||||||
|
# Copy the entrypoint
|
||||||
|
COPY conf-workers/start-complement-synapse-workers.sh /
|
||||||
|
|
||||||
# Expose caddy's listener ports
|
# Expose caddy's listener ports
|
||||||
EXPOSE 8008 8448
|
EXPOSE 8008 8448
|
||||||
|
|
||||||
ENTRYPOINT \
|
ENTRYPOINT /start-complement-synapse-workers.sh
|
||||||
# Replace the server name in the caddy config
|
|
||||||
sed -i "s/{{ server_name }}/${SERVER_NAME}/g" /root/caddy.json && \
|
|
||||||
# Start postgres
|
|
||||||
pg_ctlcluster 13 main start 2>&1 && \
|
|
||||||
# Start caddy
|
|
||||||
/root/caddy start --config /root/caddy.json 2>&1 && \
|
|
||||||
# Set the server name of the homeserver
|
|
||||||
SYNAPSE_SERVER_NAME=${SERVER_NAME} \
|
|
||||||
# No need to report stats here
|
|
||||||
SYNAPSE_REPORT_STATS=no \
|
|
||||||
# Set postgres authentication details which will be placed in the homeserver config file
|
|
||||||
POSTGRES_PASSWORD=somesecret POSTGRES_USER=postgres POSTGRES_HOST=localhost \
|
|
||||||
# Specify the workers to test with
|
|
||||||
SYNAPSE_WORKER_TYPES="\
|
|
||||||
event_persister, \
|
|
||||||
event_persister, \
|
|
||||||
background_worker, \
|
|
||||||
frontend_proxy, \
|
|
||||||
event_creator, \
|
|
||||||
user_dir, \
|
|
||||||
media_repository, \
|
|
||||||
federation_inbound, \
|
|
||||||
federation_reader, \
|
|
||||||
federation_sender, \
|
|
||||||
synchrotron, \
|
|
||||||
appservice, \
|
|
||||||
pusher" \
|
|
||||||
# Run the script that writes the necessary config files and starts supervisord, which in turn
|
|
||||||
# starts everything else
|
|
||||||
/configure_workers_and_start.py
|
|
||||||
|
|
||||||
|
# Update the healthcheck to have a shorter check interval
|
||||||
HEALTHCHECK --start-period=5s --interval=1s --timeout=1s \
|
HEALTHCHECK --start-period=5s --interval=1s --timeout=1s \
|
||||||
CMD /bin/sh /healthcheck.sh
|
CMD /bin/sh /healthcheck.sh
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Default ENTRYPOINT for the docker image used for testing synapse with workers under complement
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
function log {
|
||||||
|
d=$(date +"%Y-%m-%d %H:%M:%S,%3N")
|
||||||
|
echo "$d $@"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Replace the server name in the caddy config
|
||||||
|
sed -i "s/{{ server_name }}/${SERVER_NAME}/g" /root/caddy.json
|
||||||
|
|
||||||
|
log "starting postgres"
|
||||||
|
pg_ctlcluster 13 main start
|
||||||
|
|
||||||
|
log "starting caddy"
|
||||||
|
/root/caddy start --config /root/caddy.json
|
||||||
|
|
||||||
|
# Set the server name of the homeserver
|
||||||
|
export SYNAPSE_SERVER_NAME=${SERVER_NAME}
|
||||||
|
|
||||||
|
# No need to report stats here
|
||||||
|
export SYNAPSE_REPORT_STATS=no
|
||||||
|
|
||||||
|
# Set postgres authentication details which will be placed in the homeserver config file
|
||||||
|
export POSTGRES_PASSWORD=somesecret
|
||||||
|
export POSTGRES_USER=postgres
|
||||||
|
export POSTGRES_HOST=localhost
|
||||||
|
|
||||||
|
# Specify the workers to test with
|
||||||
|
export SYNAPSE_WORKER_TYPES="\
|
||||||
|
event_persister, \
|
||||||
|
event_persister, \
|
||||||
|
background_worker, \
|
||||||
|
frontend_proxy, \
|
||||||
|
event_creator, \
|
||||||
|
user_dir, \
|
||||||
|
media_repository, \
|
||||||
|
federation_inbound, \
|
||||||
|
federation_reader, \
|
||||||
|
federation_sender, \
|
||||||
|
synchrotron, \
|
||||||
|
appservice, \
|
||||||
|
pusher"
|
||||||
|
|
||||||
|
# Run the script that writes the necessary config files and starts supervisord, which in turn
|
||||||
|
# starts everything else
|
||||||
|
exec /configure_workers_and_start.py
|
Loading…
Reference in New Issue