summary refs log tree commit diff
path: root/docker/Dockerfile (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Dockerfile: Bump Python version from 3.9 to 3.11 (#14875)katlol2023-01-201-42/+42
| | | | | | | Closes https://github.com/matrix-org/synapse/issues/13234 Signed-off-by: Katia Esposito <1695469+katlol@users.noreply.github.com> Signed-off-by: Katia Esposito <1695469+katlol@users.noreply.github.com>
* Require poetry>=1.3.2 (#14860)David Robertson2023-01-171-9/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Upgrade to new lockfile format Now requires poetry >= 1.2.2 to read and poetry >= 1.3.0 to write. Cheat sheet: ``` poetry --version poetry show > scratch/before pipx upgrade poetry poetry --version poetry show > scratch/after diff scratch{before,after} && echo "no change!" ``` * Use Poetry 1.3.2 when reading or writing lockfile * Remove unneeded(?) poetry dep for cibuildwheel * Update docs * Remove redundant call to setup-python * Remove outdated comments related to Poetry 1.x * Remove outdated docs line was fixed in #13082 * Minor improvements to poetry cheat sheet * Invoke setup-python-poetry with explicit version Not sure about this. It's hardcoding versions everywhere. * Changelog * Check the lockfile is version 2.0 Might one day incorporate other checks like #14742 * Typo fixes, thanks Sean Co-authored-by: Sean Quah <8349537+squahtx@users.noreply.github.com> Co-authored-by: Sean Quah <8349537+squahtx@users.noreply.github.com>
* Add release note and update doc regarding ICU (#14712)Mathieu Velten2022-12-201-0/+1
| | | | | Fixes #14704. Signed-off-by: Mathieu Velten <mathieuv@matrix.org>
* Add optional ICU support for user search (#14464)Brendan Abolivier2022-12-121-0/+2
| | | | | | | Fixes #13655 This change uses ICU (International Components for Unicode) to improve boundary detection in user search. This change also adds a new dependency on libicu-dev and pkg-config for the Debian packages, which are available in all supported distros.
* docker: remove useless cargo install with apt (#14636)Mathieu Velten2022-12-071-1/+1
| | | Signed-off-by: Mathieu Velten <mathieuv@matrix.org>
* Cache Rust build cache when building docker images (#14130)Erik Johnston2022-10-171-1/+3
|
* Merge remote-tracking branch 'origin/release-v1.69' into developPatrick Cloke2022-10-141-1/+7
|\
| * Fix docker build OOMing in CI for arm64 builds (#14173)Erik Johnston2022-10-131-0/+6
| | | | | | Co-authored-by: David Robertson <davidr@element.io>
| * Fix pinning Rust deps in docker images (#14129)Erik Johnston2022-10-111-1/+1
| |
* | Use minimal Rust installation in docker images and CI (#14141)David Robertson2022-10-121-1/+1
|/
* Fix Docker build when Rust .so has been build locally first (#13811)Mathieu Velten2022-09-161-3/+5
| | | Signed-off-by: Mathieu Velten <mathieuv@matrix.org>
* Add a stub Rust crate (#12595)Erik Johnston2022-09-061-2/+12
|
* Bump docker image to use stable poetry version (#13688)Erik Johnston2022-09-011-10/+1
|
* Install cryptography build dependencies in requirements image. (#13372)Jasper Spaans2022-08-031-1/+2
|
* Enable Complement CI tests in the 'latest deps' test run. (#13213)reivilibre2022-08-011-2/+22
| | | Co-authored-by: Sean Quah <8349537+squahtx@users.noreply.github.com>
* Use and recommend poetry 1.1.14, up from 1.1.12 (#13285)David Robertson2022-07-151-1/+1
|
* Enable Complement testing in the 'Twisted Trunk' CI runs. (#13079)reivilibre2022-07-011-1/+8
|
* Collapse Docker build commands in Complement CI runs to make the logs easier ↵reivilibre2022-06-151-3/+3
| | | | to read. (#13058)
* Pin poetry.core in Docker images (#12853)Erik Johnston2022-05-241-1/+1
|
* Mark Dockerfile as requiring BuildKit (#12541)Jason Robinson2022-04-261-0/+1
| | | Co-authored-by: David Robertson <davidr@element.io>
* Dump setuptools; correct pyproject version number (#12478)David Robertson2022-04-201-4/+2
|
* Workaround pip bug installing latest treq and not-latest twisted from hashes ↵David Robertson2022-04-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | (#12439) The requirements file generated by `poetry export` isn't correctly processed by `pip install -r requirements.txt`. It contains twisted and treq, both pinned to 22.2.0. When `pip` installs treq, it notices that `Twisted[tls]` is required. It then tries to acquire the latest twisted release, only to fail (because this hash isn't listed in the requirements file).From e.g. https://github.com/matrix-org/synapse/runs/5977154990?check_suite_focus=true > ``` > #15 9.204 Collecting Twisted[tls]>=18.7.0 > #15 9.205 ERROR: In --require-hashes mode, all requirements must have their versions pinned with ==. These do not: > #15 9.205 Twisted[tls]>=18.7.0 from https://files.pythonhosted.org/packages/db/99/38622ff95bb740bcc991f548eb46295bba62fcb6e907db1987c4d92edd09/Twisted-22.4.0-py3-none-any.whl#sha256=f9f7a91f94932477a9fc3b169d57f54f96c6e74a23d78d9ce54039a7f48928a2 (from treq==22.2.0->-r /synapse/requirements.txt (line 724)) > #15 ERROR: executor failed running [/bin/sh -c pip install --prefix="/install" --no-warn-script-location -r /synapse/requirements.txt]: exit code: 1 > ``` The underlying pip issue is https://github.com/pypa/pip/issues/9644. A comment notes that one can avoid this behaviour with by `pip install`ing with the `--no-deps` flag. Let us do so. (At first glance, the problem looks like https://github.com/python-poetry/poetry/issues/5311, but that was a bug in `poetry install`; this is `poetry export`, whose behaviour is fine AFAICS).
* Poetry: use locked environment in Docker images (#12385)David Robertson2022-04-071-20/+58
|
* Move synctl into `synapse._scripts` and expose as an entrypoint (#12140)David Robertson2022-03-041-1/+1
|
* Move scripts directory inside synapse, exposing as setuptools entry_points ↵David Robertson2022-03-021-1/+0
| | | | | | | | | | | | (#12118) * Two scripts are basically entry_points already * Move and rename scripts/* to synapse/_scripts/*.py * Delete sync_room_to_group.pl * Expose entry points in setup.py * Update linter script and config * Fixup scripts & docs mentioning scripts that moved Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
* Use Python 3.9 in Synapse dockerfiles by default (#12112)Andrew Morgan2022-03-011-2/+2
|
* Docker: remove `VOLUME` directive (#11997)Richard van der Hoff2022-02-151-2/+0
| | | | | | | | | | | The driver for this is to stop Complement complaining about it, but as far as I can tell it was pointless and needed to go away anyway. I'm a bit unclear about what exactly VOLUME does, but I think what it means is that, if you don't override it with an explicit -v argument, then docker run will create a temporary volume, and copy things into it. The temporary volume is then deleted when the container finishes. That only sounds useful if your image has something to copy into it (otherwise you may as well just use the default root filesystem), and our image notably doesn't copy anything into /data. So... this wasn't doing anything, except annoying Complement?
* Use buildkit's cache feature to speed up docker builds (#11691)Richard van der Hoff2022-01-121-5/+21
| | | Having spent much of the last week attempting to run complement tests from somewhere with damp string instead of internet... something had to be done.
* Docker healthcheck timings - add startup delay and changed interval (#9913)Christopher May-Townsend2021-05-051-1/+1
| | | | | * Add healthcheck startup delay by 5secs and reduced interval check to 15s to reduce waiting time for docker aware edge routers bringing an instance online
* Put opencontainers labels to the final image (#9765)Johannes Wienke2021-04-081-5/+5
| | | | | | They don't make any sense on the intermediate builder image. The final images needs them to be of use for anyone. Signed-off-by: Johannes Wienke <languitar@semipol.de>
* Make pip install faster in Docker build for Complement testing (#9610)Eric Eastwood2021-03-261-43/+41
| | | | | | | | | Make pip install faster in Docker build for [Complement](https://github.com/matrix-org/complement) testing. If files have changed in a `COPY` command, Docker will invalidate all of the layers below. So I changed the order of operations to install all dependencies before we `COPY synapse /synapse/synapse/`. This allows Docker to use our cached layer of dependencies even when we change the source of Synapse and speed up builds dramatically! `53.5s` -> `3.7s` builds 🤘 As an alternative, I did try using BuildKit caches but this still took 30 seconds overall on that step. 15 seconds to gather the dependencies from the cache and another 15 seconds to `Installing collected packages`. Fix https://github.com/matrix-org/synapse/issues/9364
* Merge branch 'master' into developErik Johnston2021-03-261-20/+23
|\
| * Explicitly upgrade openssl in docker file and enforce new version of ↵Erik Johnston2021-03-261-20/+23
| | | | | | | | cryptography (#9697)
* | Include opencontainers labels in Docker image (#9612)Johannes Wienke2021-03-221-0/+5
|/ | | | | | Cf. https://github.com/opencontainers/image-spec/blob/master/annotations.md#pre-defined-annotation-keys Signed-off-by: Johannes Wienke <languitar@semipol.de>
* Install jemalloc in docker image (#8553)Mathieu Velten2021-03-161-0/+1
| | | | Co-authored-by: Will Hunt <willh@matrix.org> Co-authored-by: Erik Johnston <erik@matrix.org>
* Add rustc to Docker image build environment (#9405)Dan Callahan2021-02-151-0/+2
| | | | | | | | This is needed to build the cryptography library, since it does not provide wheels for ARMv7. Fixes #9403 Signed-off-by: Dan Callahan <danc@element.io>
* Remove version pin prometheus_client dependency (#8875)Jordan Bancino2020-12-041-1/+1
| | | | | | | This removes the version pin of the `prometheus_client` dependency, in direct response to #8831. If merged, this will close #8831 As far as I can tell, no other changes are needed, but as I'm no synapse expert, I'm relying heavily on CI and maintainer reviews for this. My very primitive test of synapse with prometheus_client v0.9.0 on my home server didn't bring up any issues, so we'll see what happens. Signed-off-by: Jordan Bancino
* Cap the version of prometheus_client to <v0.9.0 in the dockerfile (#8767)Andrew Morgan2020-11-171-1/+2
| | | Short-term fix for https://github.com/matrix-org/synapse/issues/8766.
* Use Python 3.8 in Docker images by default (#8698)Dan Callahan2020-11-021-1/+1
| | | | | | | This bumps us closer to current Python without going all the way to 3.9. Fixes #8674 Signed-off-by: Dan Callahan <danc@element.io>
* Add required Debian dependencies to allow docker builds on the arm platform ↵Christopher May-Townsend2020-08-261-3/+10
| | | | | | (#8144) Signed-off-by: Christopher May-Townsend <chris@maytownsend.co.uk>
* Add healthcheck for default localhost 8008 port on /health endpoint. (#8147)Christopher May-Townsend2020-08-241-0/+4
|
* Switch to Debian:Slim from Alpine for the docker image (#7839)Christopher May-Townsend2020-07-171-34/+23
| | | As mentioned in #7397, switching to a debian base should help with multi-arch work to save time on compiling. This is unashamedly based on #6373, but without the extra functionality. Switch python version back to generic 3.7 to always pull the latest. Essentially, keeping this as small as possible. The image is bigger though unfortunately.
* Add libwebp dependency to Dockerfile (#7791)Juho Vanhanen2020-07-061-0/+2
| | | | | * Add libwebp dependency to Dockerfile Signed-off-by: Juho Vanhanen <juho@vanhanen.io>
* Update runtime docker image to Alpine v3.11Cédric Laubacher2020-05-031-1/+1
|
* bump the version of Alpine Linux used in the docker images (#6897)Richard van der Hoff2020-02-121-1/+1
|
* Upgrade Alpine Linux used in the Docker image (3.8 -> 3.10) (#5619)Slavi Pantaleev2019-07-121-2/+2
| | | | | | | | | Alpine Linux 3.8 is still supported, but it seems like it's quite outdated now. While Python should be the same on both, all other libraries, etc., are much newer in Alpine 3.9 and 3.10. Signed-off-by: Slavi Pantaleev <slavi@devture.com>
* Add ability to set timezone for Docker container (#5383)Amir Zarrinkafsh2019-07-021-0/+1
| | | | Signed-off-by: Amir Zarrinkafsh <nightah@me.com>
* Update docker image to use Python 3.7. (#5546)Richard van der Hoff2019-06-251-1/+1
| | | Python 3.7 is apparently faster than 3.6, and should be mature enough.
* Include xmlsec in the docker imageRichard van der Hoff2019-06-181-1/+3
| | | | Fixes #5467.
* Enable ACME support in the docker image (#4566)Richard van der Hoff2019-02-051-1/+14
| | | | | | | Also: * Fix wrapping in docker readme * Clean up some docs on the docker image * a workaround for #4554
* Docker: only copy what we need to the build image (#4562)Richard van der Hoff2019-02-051-1/+4
| | | | | | | | | | There are two reasons this is a good thing: * first, it means that you don't end up with stuff kicking around your working copy ending up in the build image by mistake (which can upset the pip install process) * second: it means that the docker image cache is more effective, and we can reuse docker images when iterating on the docker stuff.
* fix docker build to install optional deps github/release-v0.34.1 release-v0.34.1Richard van der Hoff2019-01-091-3/+1
|
* Further reduce the size of the docker image (#3972)Richard van der Hoff2018-10-011-25/+46
| | | | Rewrite the dockerfile as a multistage build: this means we can get rid of a whole load of cruft which we don't need.
* Update DockerfileJan Christian Grünhage2018-09-251-1/+0
|
* make python 3 work in the docker containerJan Christian Grünhage2018-09-201-1/+3
|
* add runtime dependenciesJan Christian Grünhage2018-09-101-5/+10
|
* Move COPY before RUN and merge RUNsMathijs van Gorcum2018-09-101-5/+5
|
* Remove build requirements after buildingMathijs van Gorcum2018-09-101-2/+3
|
* update docker base-image to alpine 3.8Jan Christian Grünhage2018-08-091-1/+1
|
* Refactor docker locations and README.Michael Kaye2018-08-021-0/+35
This addresses #3224