From f7868ae828c8128756035d132c24175e9a7a6111 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?= Date: Sat, 6 Jan 2018 11:35:52 +0100 Subject: [PATCH] feat: migrate to baseimage --- .drone.yml | 6 ++++ Dockerfile | 63 +++++++++++++++++------------------- root/etc/s6.d/synapse/finish | 2 ++ root/etc/s6.d/synapse/run | 4 +++ root/usr/local/bin/generate | 17 ++++++++++ root/usr/local/bin/run.sh | 32 ------------------ 6 files changed, 58 insertions(+), 66 deletions(-) create mode 100644 .drone.yml create mode 100755 root/etc/s6.d/synapse/finish create mode 100755 root/etc/s6.d/synapse/run create mode 100755 root/usr/local/bin/generate delete mode 100755 root/usr/local/bin/run.sh diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..101b6ee --- /dev/null +++ b/.drone.yml @@ -0,0 +1,6 @@ +pipeline: + docker: + image: plugins/docker + repo: docker.jcg.re/synapse + registry: docker.jcg.re + secrets: [ docker_username, docker_password ] diff --git a/Dockerfile b/Dockerfile index c95985e..074277a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,36 +1,31 @@ -FROM alpine:edge -MAINTAINER Jan Christian Grünhage +FROM docker.jcg.re/base-alpine +MAINTAINER Jan Christian Grünhage -RUN apk add --update \ - python2 \ - py-pip \ - py-virtualenv \ - py-setuptools \ - python-dev \ - postgresql-dev \ - build-base \ - linux-headers \ - libffi-dev \ - jpeg-dev \ - tiff-dev \ - bash \ - sqlite \ - su-exec \ - openldap-dev \ - && virtualenv -p python2.7 /synapse \ - && source /synapse/bin/activate \ - && pip install --upgrade \ - setuptools \ - cffi \ - incremental \ - python-ldap \ - psycopg2 \ - && pip install https://github.com/matrix-org/synapse/tarball/master \ - && mkdir /data +RUN apk add --update \ + python2 \ + py-pip \ + py-virtualenv \ + py-setuptools \ + python-dev \ + postgresql-dev \ + build-base \ + linux-headers \ + libffi-dev \ + jpeg-dev \ + tiff-dev \ + bash \ + sqlite \ + su-exec \ + openldap-dev \ + && pip install --upgrade \ + setuptools \ + cffi \ + incremental \ + python-ldap \ + psycopg2 \ + && pip install https://github.com/matrix-org/synapse/tarball/master \ + && mkdir /data -ADD root / -VOLUME /data -EXPOSE 8448 8008 - -ENTRYPOINT ["/usr/local/bin/run.sh"] -CMD ["start"] +ADD root / +VOLUME /data +EXPOSE 8448 8008 diff --git a/root/etc/s6.d/synapse/finish b/root/etc/s6.d/synapse/finish new file mode 100755 index 0000000..22665fa --- /dev/null +++ b/root/etc/s6.d/synapse/finish @@ -0,0 +1,2 @@ +#!/bin/sh +exec /bin/true diff --git a/root/etc/s6.d/synapse/run b/root/etc/s6.d/synapse/run new file mode 100755 index 0000000..d48fdb7 --- /dev/null +++ b/root/etc/s6.d/synapse/run @@ -0,0 +1,4 @@ +#!/bin/sh +cd /data +exec su-exec ${UID}:${GID} python2 -m synapse.app.homeserver \ + --config-path /data/config/homeserver.yaml diff --git a/root/usr/local/bin/generate b/root/usr/local/bin/generate new file mode 100755 index 0000000..103b61e --- /dev/null +++ b/root/usr/local/bin/generate @@ -0,0 +1,17 @@ +#!/bin/sh +chown ${UID}:${GID} /data +[[ -z "${SERVER_NAME}" ]] && echo "STOP! environment variable SERVER_NAME must be set" && breakup="1" +[[ -z "${REPORT_STATS}" ]] && echo "STOP! environment variable REPORT_STATS must be set to 'no' or 'yes'" && breakup="1" +[[ "${REPORT_STATS}" != "yes" ]] && [[ "${REPORT_STATS}" != "no" ]] && \ + echo "STOP! REPORT_STATS needs to be 'no' or 'yes'" && breakup="1" +[[ "${breakup}" == "1" ]] && exit 1 + +su-exec ${UID}:${GID} python2 -m synapse.app.homeserver \ + -c /data/config/homeserver.yaml \ + --generate-config \ + -H ${SERVER_NAME} \ + --report-stats ${REPORT_STATS} +sed -e 's#/homeserver.db#/data/database/homeserver.db#' \ + -e 's#/homeserver.log#/data/log/homeserver.log#' \ + -e 's#/media_store#/data/media_store#' \ + -e 's#/uploads#/data/uploads#' -i /data/config/homeserver.yaml diff --git a/root/usr/local/bin/run.sh b/root/usr/local/bin/run.sh deleted file mode 100755 index f72ce2a..0000000 --- a/root/usr/local/bin/run.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env bash - -COMMAND="${1}" - -prepare() { - chown ${UID}:${GID} /data - cd /synapse - source bin/activate -} - -case ${COMMAND} in - "start") - prepare - su-exec ${UID}:${GID} python2 -m synapse.app.homeserver \ - --config-path /data/config/homeserver.yaml - ;; - "generate") - breakup="0" - [[ -z "${SERVER_NAME}" ]] && echo "STOP! environment variable SERVER_NAME must be set" && breakup="1" - [[ -z "${REPORT_STATS}" ]] && echo "STOP! environment variable REPORT_STATS must be set to 'no' or 'yes'" && breakup="1" - [[ "${breakup}" == "1" ]] && exit 1 - - [[ "${REPORT_STATS}" != "yes" ]] && [[ "${REPORT_STATS}" != "no" ]] && \ - echo "STOP! REPORT_STATS needs to be 'no' or 'yes'" && breakup="1" - prepare - su-exec ${UID}:${GID} python2 -m synapse.app.homeserver \ - -c /data/config/homeserver.yaml \ - --generate-config \ - -H ${SERVER_NAME} \ - --report-stats ${REPORT_STATS} - ;; -esac