|
|
@@ -8,19 +8,15 @@ |
|
|
|
|
|
|
|
ARG SYNAPSE_VERSION=latest |
|
|
|
|
|
|
|
# first of all, we create a base image with a postgres server and database, |
|
|
|
# which we can copy into the target image. For repeated rebuilds, this is |
|
|
|
# much faster than apt installing postgres each time. |
|
|
|
# |
|
|
|
# This trick only works because (a) the Synapse image happens to have all the |
|
|
|
# shared libraries that postgres wants, (b) we use a postgres image based on |
|
|
|
# the same debian version as Synapse's docker image (so the versions of the |
|
|
|
# shared libraries match). |
|
|
|
|
|
|
|
# now build the final image, based on the Synapse image. |
|
|
|
|
|
|
|
FROM matrixdotorg/synapse-workers:$SYNAPSE_VERSION |
|
|
|
# copy the postgres installation over from the image we built above |
|
|
|
# First of all, we copy postgres server from the official postgres image, |
|
|
|
# since for repeated rebuilds, this is much faster than apt installing |
|
|
|
# postgres each time. |
|
|
|
|
|
|
|
# This trick only works because (a) the Synapse image happens to have all the |
|
|
|
# shared libraries that postgres wants, (b) we use a postgres image based on |
|
|
|
# the same debian version as Synapse's docker image (so the versions of the |
|
|
|
# shared libraries match). |
|
|
|
RUN adduser --system --uid 999 postgres --home /var/lib/postgresql |
|
|
|
COPY --from=postgres:13-bullseye /usr/lib/postgresql /usr/lib/postgresql |
|
|
|
COPY --from=postgres:13-bullseye /usr/share/postgresql /usr/share/postgresql |
|
|
@@ -28,7 +24,7 @@ FROM matrixdotorg/synapse-workers:$SYNAPSE_VERSION |
|
|
|
ENV PATH="${PATH}:/usr/lib/postgresql/13/bin" |
|
|
|
ENV PGDATA=/var/lib/postgresql/data |
|
|
|
|
|
|
|
# initialise the database cluster in /var/lib/postgresql |
|
|
|
# We also initialize the database at build time, rather than runtime, so that it's faster to spin up the image. |
|
|
|
RUN gosu postgres initdb --locale=C --encoding=UTF-8 --auth-host password |
|
|
|
|
|
|
|
# Configure a password and create a database for Synapse |
|
|
|