mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-31 10:37:12 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
| # This Dockerfile builds the psycopg2 wheel
 | |
| # Inputs:
 | |
| #    - PSYCOPG2_VERSION - Version to build
 | |
| 
 | |
| FROM python:3.9-slim-bullseye as main
 | |
| 
 | |
| LABEL org.opencontainers.image.description="A intermediate image with psycopg2 wheel built"
 | |
| 
 | |
| ARG PSYCOPG2_VERSION
 | |
| ARG DEBIAN_FRONTEND=noninteractive
 | |
| 
 | |
| ARG BUILD_PACKAGES="\
 | |
|   build-essential \
 | |
|   python3-dev \
 | |
|   python3-pip \
 | |
|   # https://www.psycopg.org/docs/install.html#prerequisites
 | |
|   libpq-dev"
 | |
| 
 | |
| WORKDIR /usr/src
 | |
| 
 | |
| # As this is an base image for a multi-stage final image
 | |
| # the added size of the install is basically irrelevant
 | |
| 
 | |
| RUN set -eux \
 | |
|   && echo "Installing build tools" \
 | |
|     && apt-get update --quiet \
 | |
|     && apt-get install --yes --quiet --no-install-recommends ${BUILD_PACKAGES} \
 | |
|   && echo "Installing Python tools" \
 | |
|     && python3 -m pip install --no-cache-dir --upgrade pip wheel \
 | |
|   && echo "Building psycopg2 wheel ${PSYCOPG2_VERSION}" \
 | |
|     && cd /usr/src \
 | |
|     && mkdir wheels \
 | |
|     && python3 -m pip wheel \
 | |
|       # Build the package at the required version
 | |
|       psycopg2==${PSYCOPG2_VERSION} \
 | |
|       # Output the *.whl into this directory
 | |
|       --wheel-dir wheels \
 | |
|       # Do not use a binary packge for the package being built
 | |
|       --no-binary=psycopg2 \
 | |
|       # Do use binary packages for dependencies
 | |
|       --prefer-binary \
 | |
|       # Don't cache build files
 | |
|       --no-cache-dir \
 | |
|     && ls -ahl wheels/ \
 | |
|   && echo "Cleaning up image" \
 | |
|     && apt-get -y purge ${BUILD_PACKAGES} \
 | |
|     && apt-get -y autoremove --purge \
 | |
|     && rm -rf /var/lib/apt/lists/*
 |