0
0
Fork 1
mirror of https://mau.dev/maunium/synapse.git synced 2024-11-14 22:11:47 +01:00

Add custom docker image

This commit is contained in:
Tulir Asokan 2020-11-18 01:12:41 +02:00
parent 1fb9c17968
commit c79b058cff
2 changed files with 78 additions and 0 deletions

20
.gitlab-ci.yml Normal file
View file

@ -0,0 +1,20 @@
image: docker:stable
stages:
- build
build amd64:
stage: build
tags:
- amd64
only:
- master
before_script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
script:
- docker pull $CI_REGISTRY_IMAGE:latest || true
- synversion=$(cat synapse/__init__.py | grep '__version__ = "' | sed -E 's/^__version__ = "(.+)"$/\1/')
- docker build --pull --cache-from $CI_REGISTRY_IMAGE:latest --tag $CI_REGISTRY_IMAGE:latest --tag $CI_REGISTRY_IMAGE:$synversion .
- docker push $CI_REGISTRY_IMAGE:latest
- docker push $CI_REGISTRY_IMAGE:$synversion
- docker rmi $CI_REGISTRY_IMAGE:latest $CI_REGISTRY_IMAGE:$synversion

58
Dockerfile Normal file
View file

@ -0,0 +1,58 @@
FROM debian:buster-slim
MAINTAINER Tulir Asokan <tulir@maunium.net>
RUN set -ex && export DEBIAN_FRONTEND=noninteractive \
&& apt-get clean \
&& apt-get update -y -q --fix-missing \
&& apt-get upgrade -y \
&& apt-get install -y --no-install-recommends \
libffi6 \
libjpeg62-turbo \
libssl1.1 \
libtool \
libxml2 \
libpq5 \
libxslt1.1 \
python3 \
python3-setuptools \
libjemalloc2 \
zlib1g
COPY . /synapse
WORKDIR /synapse
RUN set -ex && export DEBIAN_FRONTEND=noninteractive \
&& buildDeps=' \
file \
gcc \
git \
libevent-dev \
libffi-dev \
libgnutls28-dev \
libjpeg62-turbo-dev \
libldap2-dev \
libsasl2-dev \
libssl-dev \
libtool \
libxml2-dev \
libxslt1-dev \
linux-headers-amd64 \
zlib1g-dev \
python3-dev \
python3-pip \
libpq-dev' \
&& apt-get install -y --no-install-recommends $buildDeps \
&& pip3 install --upgrade wheel \
&& pip3 install --upgrade .[all] \
'git+https://github.com/maunium/synapse-simple-antispam#egg=synapse-simple-antispam' \
'git+https://github.com/devture/matrix-synapse-shared-secret-auth#egg=shared_secret_authenticator' \
&& apt-get purge --auto-remove -y $buildDeps \
&& apt-get clean \
&& rm -rf /synapse
VOLUME ["/data"]
ENV LD_PRELOAD="/usr/lib/x86_64-linux-gnu/libjemalloc.so.2"
ENTRYPOINT ["python3", "-m", "synapse.app.homeserver"]
CMD ["--keys-directory", "/data", "-c", "/data/homeserver.yaml"]