Docker image to run pre-commit on Python apps/libraries
Find a file
2025-08-21 16:22:47 +02:00
fake_python_module Initial release 2023-01-19 14:43:06 +01:00
.gitignore Initial release 2023-01-19 14:43:06 +01:00
.pre-commit-config.yaml Introduce new hooks, upgrade existing and add wrapper script to call pylint 2024-02-13 13:18:44 +01:00
.pre-commit-pylint .pre-commit-pylint: auto install pylint in venv and poetry env if missing 2024-02-13 13:41:35 +01:00
.yamllint.yml Add .yamllint.yml 2024-03-15 08:38:19 +01:00
Dockerfile.common Build images from Debian 11 to 13 2025-08-21 16:22:47 +02:00
Dockerfile.common-vars Build images from Debian 11 to 13 2025-08-21 16:22:47 +02:00
Dockerfile.debian11 Build images from Debian 11 to 13 2025-08-21 16:22:47 +02:00
Dockerfile.debian12 Build images from Debian 11 to 13 2025-08-21 16:22:47 +02:00
Dockerfile.debian13 Build images from Debian 11 to 13 2025-08-21 16:22:47 +02:00
README.md Build images from Debian 11 to 13 2025-08-21 16:22:47 +02:00

Docker image to run pre-commit on Python apps/libraries

Debian stable based image with common dependencies to run pre-commit on Python apps/libraries:

  • common python packages: python3-all python3-dev python3-pip python3-venv pylint poetry
  • build-essential to allow local python package using pip
  • pre-commit and git commands
  • pre-install pre-commit environments for ruff, pyupgrade, black, isort, flake8, codespell, yamllint, prettier, pylint and bandit.

To use it:

docker run \
    -it --rm \
    -v "$(pwd)":/src -w /src \
    brenard/python-pre-commit \
    pre-commit run --all-files

Note: an example .pre-commit-config.yaml file is provided with Docker image source. To test it on your project, use to following command:

docker run \
    -it --rm \
    -v "$(pwd)":/src -w /src \
    -v "$(pwd)/.pre-commit-config.yaml":/src/.pre-commit-config.yaml \
    brenard/python-pre-commit \
    pre-commit run --all-files

Build

# Need to use Dockerfile+ (https://github.com/edrevo/dockerfile-plus)
export DOCKER_BUILDKIT=1
export COMPOSE_DOCKER_CLI_BUILD=1

for deb_version in 11 12 13
do
    docker build -t docker.io/brenard/python-pre-commit:debian${deb_version} -f Dockerfile.debian${deb_version} .
done
docker build -t docker.io/brenard/python-pre-commit:latest -f Dockerfile.debian${deb_version} .

Publish

for deb_version in 11 12 13
do
    docker push docker.io/brenard/python-pre-commit:debian${deb_version}
done
docker push docker.io/brenard/python-pre-commit:latest