pyPhotoAlbum/Dockerfile.ci
2026-04-09 21:08:39 +00:00

66 lines
1.4 KiB
Docker

# CI test image for pyPhotoAlbum
# Build: docker build -f Dockerfile.ci -t gitea.tourolle.paris/dtourolle/pyphotoalbum-ci:latest .
# Push: docker push gitea.tourolle.paris/dtourolle/pyphotoalbum-ci:latest
FROM ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y \
--no-install-recommends \
# Python
python3 \
python3-pip \
# PyQt6 / OpenGL runtime deps
libgl1 \
libglib2.0-0 \
libegl1 \
libfontconfig1 \
libfreetype6 \
libdbus-1-3 \
# XCB / display (needed even with offscreen platform)
libx11-6 \
libx11-xcb1 \
libxcb1 \
libxcb-cursor0 \
libxcb-glx0 \
libxcb-icccm4 \
libxcb-image0 \
libxcb-keysyms1 \
libxcb-randr0 \
libxcb-render0 \
libxcb-render-util0 \
libxcb-shape0 \
libxcb-shm0 \
libxcb-sync1 \
libxcb-xfixes0 \
libxcb-xinerama0 \
libxcb-xkb1 \
libxkbcommon0 \
libxkbcommon-x11-0 \
# Misc tools used in workflows
curl \
git \
nodejs \
&& rm -rf /var/lib/apt/lists/*
# Install all Python dependencies so CI runs don't need to download anything
RUN pip3 install --break-system-packages --no-cache-dir \
# Runtime deps
PyQt6 \
PyOpenGL \
numpy \
Pillow \
reportlab \
lxml \
pypdf \
# Dev/test deps
pytest \
pytest-qt \
pytest-cov \
pytest-mock \
pdfplumber \
flake8 \
coverage-badge \
interrogate \
setuptools