diff options
author | Amber H. Brown <hawkowl@atleastfornow.net> | 2019-07-17 03:58:34 +1000 |
---|---|---|
committer | Amber H. Brown <hawkowl@atleastfornow.net> | 2019-07-17 03:58:34 +1000 |
commit | 646292cfb197d9967a8e2d4355cca267616767e6 (patch) | |
tree | 1ac55a24e6587b0a92c59d823da618a73652409d /docker/Dockerfile-optimised | |
parent | Merge remote-tracking branch 'origin/develop' into shhs (diff) | |
download | synapse-646292cfb197d9967a8e2d4355cca267616767e6.tar.xz |
see if we can do a build!
Diffstat (limited to 'docker/Dockerfile-optimised')
-rw-r--r-- | docker/Dockerfile-optimised | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/docker/Dockerfile-optimised b/docker/Dockerfile-optimised new file mode 100644 index 0000000000..cc6f37a9e1 --- /dev/null +++ b/docker/Dockerfile-optimised @@ -0,0 +1,66 @@ +# 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.7.4 +ARG MARCH=skylake-avx512 + +### +### Stage 0: builder +### +FROM matrixdotorg/optimised-python:${PYTHON_VERSION}-optimized-lto-${MARCH} as builder + +# install the OS build deps + +RUN apt-get install -y build-essential libpq5-dev libffi-dev libexpat1-dev libxml2-dev libxslt-dev + +# build things which have slow build steps, before we copy synapse, so that +# the layer can be cached. +# +# (we really just care about caching a wheel here, as the "pip install" below +# will install them again.) + +RUN pip install --prefix="/install" --no-warn-script-location \ + cryptography \ + msgpack-python \ + pillow \ + pynacl + +# 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] + +RUN chown -R root:root /usr/local /install + +### +### Stage 1: runtime +### + +FROM matrixdotorg/optimised-python:${PYTHON_VERSION}-optimized-lto-${MARCH} + +# xmlsec is required for saml support +RUN apt install libpq5 xmlsec libxslt1 + +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"] |