From c79b058cff99b8ad6ac4e21a69d1eddcd2fe2ed6 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Wed, 18 Nov 2020 01:12:41 +0200 Subject: [PATCH] Add custom docker image --- .gitlab-ci.yml | 20 +++++++++++++++++ Dockerfile | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 .gitlab-ci.yml create mode 100644 Dockerfile diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000..c50f60e52 --- /dev/null +++ b/.gitlab-ci.yml @@ -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 diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..80cb88f1f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,58 @@ +FROM debian:buster-slim + +MAINTAINER Tulir Asokan + +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"]