2b8650547f
Synapse 1.30.1 (2021-03-26) =========================== This release is identical to Synapse 1.30.0, with the exception of explicitly setting a minimum version of Python's Cryptography library to ensure that users of Synapse are protected from the recent [OpenSSL security advisories](https://mta.openssl.org/pipermail/openssl-announce/2021-March/000198.html), especially CVE-2021-3449. Note that Cryptography defaults to bundling its own statically linked copy of OpenSSL, which means that you may not be protected by your operating system's security updates. It's also worth noting that Cryptography no longer supports Python 3.5, so admins deploying to older environments may not be protected against this or future vulnerabilities. Synapse will be dropping support for Python 3.5 at the end of March. Updates to the Docker image --------------------------- - Ensure that the docker container has up to date versions of openssl. ([\#9697](https://github.com/matrix-org/synapse/issues/9697)) Internal Changes ---------------- - Enforce that `cryptography` dependency is up to date to ensure it has the most recent openssl patches. ([\#9697](https://github.com/matrix-org/synapse/issues/9697))
95 lines
2.5 KiB
Docker
95 lines
2.5 KiB
Docker
# Dockerfile to build the matrixdotorg/synapse docker images.
|
|
#
|
|
# To build the image, run `docker build` command from the root of the
|
|
# synapse repository:
|
|
#
|
|
# docker build -f docker/Dockerfile .
|
|
#
|
|
# There is an optional PYTHON_VERSION build argument which sets the
|
|
# version of python to build against: for example:
|
|
#
|
|
# docker build -f docker/Dockerfile --build-arg PYTHON_VERSION=3.6 .
|
|
#
|
|
|
|
ARG PYTHON_VERSION=3.8
|
|
|
|
###
|
|
### Stage 0: builder
|
|
###
|
|
FROM docker.io/python:${PYTHON_VERSION}-slim as builder
|
|
|
|
LABEL org.opencontainers.image.url='https://matrix.org/docs/projects/server/synapse'
|
|
LABEL org.opencontainers.image.documentation='https://github.com/matrix-org/synapse/blob/master/docker/README.md'
|
|
LABEL org.opencontainers.image.source='https://github.com/matrix-org/synapse.git'
|
|
LABEL org.opencontainers.image.licenses='Apache-2.0'
|
|
|
|
# install the OS build deps
|
|
RUN apt-get update && apt-get install -y \
|
|
build-essential \
|
|
libffi-dev \
|
|
libjpeg-dev \
|
|
libpq-dev \
|
|
libssl-dev \
|
|
libwebp-dev \
|
|
libxml++2.6-dev \
|
|
libxslt1-dev \
|
|
openssl \
|
|
rustc \
|
|
zlib1g-dev \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Build dependencies that are not available as wheels, to speed up rebuilds
|
|
RUN pip install --prefix="/install" --no-warn-script-location \
|
|
cryptography \
|
|
frozendict \
|
|
jaeger-client \
|
|
opentracing \
|
|
# Match the version constraints of Synapse
|
|
"prometheus_client>=0.4.0" \
|
|
psycopg2 \
|
|
pycparser \
|
|
pyrsistent \
|
|
pyyaml \
|
|
simplejson \
|
|
threadloop \
|
|
thrift
|
|
|
|
# now install synapse and all of the python deps to /install.
|
|
COPY synapse /synapse/synapse/
|
|
COPY scripts /synapse/scripts/
|
|
COPY MANIFEST.in README.rst setup.py synctl /synapse/
|
|
|
|
RUN pip install --prefix="/install" --no-warn-script-location \
|
|
/synapse[all]
|
|
|
|
###
|
|
### Stage 1: runtime
|
|
###
|
|
|
|
FROM docker.io/python:${PYTHON_VERSION}-slim
|
|
|
|
RUN apt-get update && apt-get install -y \
|
|
curl \
|
|
gosu \
|
|
libjpeg62-turbo \
|
|
libpq5 \
|
|
libwebp6 \
|
|
xmlsec1 \
|
|
libjemalloc2 \
|
|
libssl-dev \
|
|
openssl \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY --from=builder /install /usr/local
|
|
COPY ./docker/start.py /start.py
|
|
COPY ./docker/conf /conf
|
|
|
|
VOLUME ["/data"]
|
|
|
|
EXPOSE 8008/tcp 8009/tcp 8448/tcp
|
|
|
|
ENTRYPOINT ["/start.py"]
|
|
|
|
HEALTHCHECK --interval=1m --timeout=5s \
|
|
CMD curl -fSs http://localhost:8008/health || exit 1
|