matrix/images/matrix-synapse/Dockerfile

66 lines
1.5 KiB
Docker

# syntax=docker/dockerfile:labs
FROM python:3.11-alpine AS builder
ARG SYNAPSE_VERSION=[[ .matrix.synapse.version ]]
RUN set -euxo pipefail &&\
apk --no-cache add \
curl \
ca-certificates \
postgresql15-dev \
build-base \
&&\
mkdir /opt/synapse &&\
cd /opt/synapse &&\
python3 -m venv venv &&\
source venv/bin/activate &&\
pip --no-cache install \
bleach \
matrix-synapse-ldap3 \
psycopg2 \
authlib \
lxml \
twisted \
txacme \
Jinja2 \
pysaml2 \
&&\
pip --no-cache install matrix-synapse==${SYNAPSE_VERSION}
FROM python:3.11-alpine
MAINTAINER [[ .docker.maintainer ]]
ENV PATH=/opt/synapse/venv/bin:${PATH} \
LANG=[[ .locale.lang ]] \
TZ=[[ .locale.tz ]] \
SYNAPSE_LISTEN_ADDR=0.0.0.0 \
SYNAPSE_CONFIG=/data/conf/homeserver.yml \
SYNAPSE_PG_DB=synapse \
SYNAPSE_PG_HOST=127.0.0.1 \
SYNAPSE_PG_PORT=5432 \
SYNAPSE_PG_USER=synapse \
SYNAPSE_PG_PASSWORD=synapse
ADD https://git.lapiole.org/nomad/base_tools.git#master /
COPY --from=builder /opt /opt
RUN set -euxo pipefail &&\
apk --no-cache add \
tini \
libpq \
&&\
addgroup --gid 8008 synapse &&\
adduser --system --ingroup synapse --disabled-password --uid 8008 --home /opt/synapse --shell /sbin/nologin synapse &&\
mkdir /data &&\
chown synapse:synapse /data &&\
chmod 700 /data
COPY root/ /
EXPOSE 8008
USER synapse
ENTRYPOINT ["tini", "--", "/entrypoint.sh"]
CMD ["matrix-synapse"]