66 lines
1.5 KiB
Docker
66 lines
1.5 KiB
Docker
# syntax=docker/dockerfile:labs
|
|
|
|
FROM python:3.11-alpine AS builder
|
|
|
|
ARG SYNAPSE_VERSION=1.105.0
|
|
|
|
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 Daniel Berteaud <dbd@ehtrace.com>
|
|
|
|
ENV PATH=/opt/synapse/venv/bin:${PATH} \
|
|
LANG=fr_FR.utf8 \
|
|
TZ=Europe/Paris \
|
|
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"]
|
|
|