mirror of
				https://gitlab.com/alemaire/buildx.git
				synced 2025-01-17 13:58:19 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			156 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			156 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
| # Dockerfile to build the matrixdotorg/synapse docker images.
 | |
| #
 | |
| # To build the image, run `docker build` command from the root of the
 | |
| # synapse repository:
 | |
| #
 | |
| #    docker build -f docker/Dockerfile .
 | |
| #
 | |
| #
 | |
| ARG DEBIAN_VERSION=20210408
 | |
| ###
 | |
| ### Stage 0: builder
 | |
| ###
 | |
| FROM docker.io/debian:bullseye-${DEBIAN_VERSION}-slim as builder
 | |
| 
 | |
| # install the OS build deps
 | |
| RUN apt-get update && apt-get install -y \
 | |
|     build-essential \
 | |
|     libffi-dev \
 | |
|     libjpeg-dev \
 | |
|     libpq-dev \
 | |
|     libssl-dev \
 | |
|     libwebp-dev \
 | |
|     libxml++2.6-dev \
 | |
|     libxslt1-dev \
 | |
|     openssl \
 | |
|     python3-dev \
 | |
|     cargo \
 | |
|     rustc \
 | |
|     zlib1g-dev \
 | |
|     python3-pip \
 | |
|     python3-jsonschema \
 | |
|     python3-frozendict \
 | |
|     python3-unpaddedbase64 \
 | |
|     python3-nacl \
 | |
|     python3-idna \
 | |
|     python3-twisted \
 | |
|     python3-treq \
 | |
|     python3-yaml \
 | |
|     python3-pyasn1-modules \
 | |
|     python3-bcrypt \
 | |
|     python3-pillow \
 | |
|     python3-sortedcontainers \
 | |
|     python3-pymacaroons \
 | |
|     python3-msgpack \
 | |
|     python3-phonenumbers \
 | |
|     python3-netaddr \
 | |
|     python3-jinja2 \
 | |
|     python3-bleach \
 | |
|     python3-pysaml2 \
 | |
|     python3-systemd \
 | |
|     python3-lxml \
 | |
|     python3-jwt \
 | |
|     python3-hiredis\
 | |
|     python3-canonicaljson \
 | |
|     python3-signedjson \
 | |
|     python3-typing-extensions \
 | |
|     python3-psycopg2cffi \
 | |
|     python3-txacme \
 | |
|     python3-authlib \
 | |
|     python3-sentry-sdk \
 | |
|     python3-opentracing \
 | |
|     && rm -rf /var/lib/apt/lists/*
 | |
| 
 | |
| # Copy just what we need to pip install
 | |
| COPY scripts /synapse/scripts/
 | |
| COPY MANIFEST.in README.rst setup.py synctl /synapse/
 | |
| COPY synapse/__init__.py /synapse/synapse/__init__.py
 | |
| COPY synapse/python_dependencies.py /synapse/synapse/python_dependencies.py
 | |
| 
 | |
| # To speed up rebuilds, install all of the dependencies before we copy over
 | |
| # the whole synapse project so that we this layer in the Docker cache can be
 | |
| # used while you develop on the source
 | |
| #
 | |
| # This is aiming at installing the `install_requires` and `extras_require` from `setup.py`
 | |
| RUN pip install --upgrade pip && \
 | |
|     pip install --prefix="/install" --no-warn-script-location \
 | |
|     /synapse[all]
 | |
| 
 | |
| # Copy over the rest of the project
 | |
| COPY synapse /synapse/synapse/
 | |
| 
 | |
| # Install the synapse package itself and all of its children packages.
 | |
| #
 | |
| # This is aiming at installing only the `packages=find_packages(...)` from `setup.py
 | |
| RUN pip3 install --prefix="/install" --no-deps --no-warn-script-location /synapse
 | |
| 
 | |
| ###
 | |
| ### Stage 1: runtime
 | |
| ###
 | |
| 
 | |
| FROM docker.io/debian:bullseye-${DEBIAN_VERSION}-slim
 | |
| 
 | |
| LABEL org.opencontainers.image.url='https://matrix.org/docs/projects/server/synapse'
 | |
| LABEL org.opencontainers.image.documentation='https://github.com/matrix-org/synapse/blob/master/docker/README.md'
 | |
| LABEL org.opencontainers.image.source='https://github.com/matrix-org/synapse.git'
 | |
| LABEL org.opencontainers.image.licenses='Apache-2.0'
 | |
| 
 | |
| RUN apt-get update && apt-get install -y --no-install-recommends \
 | |
|     curl \
 | |
|     gosu \
 | |
|     libjpeg62-turbo \
 | |
|     libpq5 \
 | |
|     libwebp6 \
 | |
|     xmlsec1 \
 | |
|     libjemalloc2 \
 | |
|     libssl-dev \
 | |
|     openssl \
 | |
|     python3-jsonschema \
 | |
|     python3-frozendict \
 | |
|     python3-unpaddedbase64 \
 | |
|     python3-nacl \
 | |
|     python3-idna \
 | |
|     python3-twisted \
 | |
|     python3-treq \
 | |
|     python3-yaml \
 | |
|     python3-pyasn1-modules \
 | |
|     python3-bcrypt \
 | |
|     python3-pillow \
 | |
|     python3-sortedcontainers \
 | |
|     python3-pymacaroons \
 | |
|     python3-msgpack \
 | |
|     python3-phonenumbers \
 | |
|     python3-netaddr \
 | |
|     python3-jinja2 \
 | |
|     python3-bleach \
 | |
|     python3-pysaml2 \
 | |
|     python3-systemd \
 | |
|     python3-lxml \
 | |
|     python3-jwt \
 | |
|     python3-hiredis\
 | |
|     python3-canonicaljson \
 | |
|     python3-signedjson \
 | |
|     python3-typing-extensions \
 | |
|     python3-psycopg2cffi \
 | |
|     python3-txacme \
 | |
|     python3-authlib \
 | |
|     python3-sentry-sdk \
 | |
|     python3-opentracing \
 | |
|     && rm -rf /var/lib/apt/lists/*
 | |
| 
 | |
| COPY --from=builder /install /usr/local
 | |
| COPY ./docker/start.py /start.py
 | |
| COPY ./docker/conf /conf
 | |
| 
 | |
| RUN ln -s /usr/bin/python3 /usr/local/bin/python && \
 | |
|     mv /usr/local/lib/python3.9/site-packages/* /usr/local/lib/python3.9/dist-packages/
 | |
| 
 | |
| VOLUME ["/data"]
 | |
| 
 | |
| EXPOSE 8008/tcp 8009/tcp 8448/tcp
 | |
| 
 | |
| ENTRYPOINT ["/start.py"]
 | |
| 
 | |
| HEALTHCHECK --interval=1m --timeout=5s \
 | |
|     CMD curl -fSs http://localhost:8008/health || exit 1
 |