aboutsummaryrefslogtreecommitdiff
path: root/app/im/build/matrix-synapse/Dockerfile
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2022-01-10 21:36:27 +0100
committerAlex Auvolat <alex@adnab.me>2022-01-10 21:36:27 +0100
commit71062a2d40961c396aba93e5e61f3bd59c8872b9 (patch)
tree9a420185f3ee917810239b078e7051614a0166a3 /app/im/build/matrix-synapse/Dockerfile
parent49270804434a954c5ee3d491a9d20b34bdb555ec (diff)
downloadnixcfg-71062a2d40961c396aba93e5e61f3bd59c8872b9.tar.gz
nixcfg-71062a2d40961c396aba93e5e61f3bd59c8872b9.zip
Matrix media natively on S3
Diffstat (limited to 'app/im/build/matrix-synapse/Dockerfile')
-rw-r--r--app/im/build/matrix-synapse/Dockerfile54
1 files changed, 54 insertions, 0 deletions
diff --git a/app/im/build/matrix-synapse/Dockerfile b/app/im/build/matrix-synapse/Dockerfile
new file mode 100644
index 0000000..4388d88
--- /dev/null
+++ b/app/im/build/matrix-synapse/Dockerfile
@@ -0,0 +1,54 @@
+FROM amd64/debian:buster as builder
+
+ARG VERSION
+ARG S3_VERSION
+RUN apt-get update && \
+ apt-get -qq -y full-upgrade && \
+ apt-get install -y \
+ python3 \
+ python3-pip \
+ python3-dev \
+ python3-setuptools \
+ libffi-dev \
+ build-essential \
+ libssl-dev \
+ libjpeg-dev \
+ libjpeg62-turbo-dev \
+ libxml2-dev \
+ zlib1g-dev \
+ # postgresql-dev \
+ libpq-dev \
+ virtualenv \
+ libxslt1-dev \
+ git
+
+RUN virtualenv /root/matrix-env -p /usr/bin/python3
+RUN . /root/matrix-env/bin/activate && \
+ pip3 install \
+ https://github.com/matrix-org/synapse/archive/v${VERSION}.tar.gz#egg=matrix-synapse[matrix-synapse-ldap3,postgres,resources.consent,saml2,url_preview] && \
+ pip3 install \
+ git+https://github.com/Alexis211/synapse-s3-storage-provider.git@${S3_VERSION}
+
+FROM amd64/debian:buster
+
+RUN apt-get update && \
+ apt-get -qq -y full-upgrade && \
+ apt-get install -y \
+ python3 \
+ python3-distutils \
+ libffi6 \
+ libjpeg62-turbo \
+ libssl1.1 \
+ libxslt1.1 \
+ libpq5 \
+ zlib1g \
+ libjemalloc2 \
+ ca-certificates
+
+ENV LD_PRELOAD /usr/lib/x86_64-linux-gnu/libjemalloc.so.2
+COPY --from=builder /root/matrix-env /root/matrix-env
+COPY matrix-s3-async /usr/local/bin/matrix-s3-async
+COPY matrix-s3-async-sqlite /usr/local/bin/matrix-s3-async-sqlite
+COPY entrypoint.sh /usr/local/bin/entrypoint
+
+ENTRYPOINT ["/usr/local/bin/entrypoint"]