1234567891011121314151617181920212223242526272829303132333435363738 |
- # Inherit from the official Synapse docker image
- ARG SYNAPSE_VERSION=latest
- FROM matrixdotorg/synapse:$SYNAPSE_VERSION
- # Install deps
- RUN \
- --mount=type=cache,target=/var/cache/apt,sharing=locked \
- --mount=type=cache,target=/var/lib/apt,sharing=locked \
- apt-get update && \
- DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
- redis-server nginx-light
- # Install supervisord with pip instead of apt, to avoid installing a second
- # copy of python.
- RUN --mount=type=cache,target=/root/.cache/pip \
- pip install supervisor~=4.2
- # Disable the default nginx sites
- RUN rm /etc/nginx/sites-enabled/default
- # Copy Synapse worker, nginx and supervisord configuration template files
- COPY ./docker/conf-workers/* /conf/
- # Copy a script to prefix log lines with the supervisor program name
- COPY ./docker/prefix-log /usr/local/bin/
- # Expose nginx listener port
- EXPOSE 8080/tcp
- # A script to read environment variables and create the necessary
- # files to run the desired worker configuration. Will start supervisord.
- COPY ./docker/configure_workers_and_start.py /configure_workers_and_start.py
- ENTRYPOINT ["/configure_workers_and_start.py"]
- # Replace the healthcheck with one which checks *all* the workers. The script
- # is generated by configure_workers_and_start.py.
- HEALTHCHECK --start-period=5s --interval=15s --timeout=5s \
- CMD /bin/sh /healthcheck.sh
|