mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-11-03 11:07:13 -05: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/
 |