mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-30 18:22:40 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.4 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 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 \
 | |
|   && apt-get update --quiet \
 | |
|   && apt-get install --yes --quiet --no-install-recommends $BUILD_PACKAGES \
 | |
|   && rm -rf /var/lib/apt/lists/* \
 | |
|   && python3 -m pip install --no-cache-dir --upgrade pip wheel
 | |
| 
 | |
| # Layers after this point change according to required version
 | |
| # For better caching, seperate the basic installs from
 | |
| # the building
 | |
| 
 | |
| ARG PSYCOPG2_VERSION
 | |
| 
 | |
| RUN set -eux \
 | |
|   && 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 \
 | |
|     --no-cache-dir \
 | |
|   && ls -ahl wheels/
 |