Skip to content

EckPhi/pre-commit-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

Dockerized Pre-commit Description

Overview

The Dockerized Pre-commit environment provides a containerized solution for managing and executing pre-commit hooks. By encapsulating the pre-commit tool and its dependencies within a Docker container, it ensures consistent and reproducible behavior across different development environments. This setup is ideal for teams looking to enforce code quality checks and coding standards seamlessly.

Features

  • Consistency: Guarantees uniform execution of pre-commit hooks across all environments.
  • Isolation: Runs independently of the host system, avoiding dependency conflicts.
  • Portability: Easily movable between different systems and continuous integration (CI) environments.
  • Simplicity: Streamlines setup by bundling pre-commit and necessary dependencies within the container.
  • Flexibility: Supports any pre-commit configuration and hook repository.

Usage

Prerequisites

  • Docker installed on the host machine.

Setup and Execution

  1. Build the Docker Image: Create a Dockerfile with the following content and build the image:

    # Use a lightweight base image with Python installed
    FROM python:3.9-slim
    
    # Set environment variables
    ENV PRE_COMMIT_HOME=/pre-commit
    
    # Install pre-commit
    RUN pip install pre-commit
    
    # Define the working directory
    WORKDIR /repo
    
    # Entry point for running pre-commit
    ENTRYPOINT ["pre-commit"]

    Build the Docker image:

    docker build -t pre-commit-container .
  2. Prepare Pre-commit Configuration: Ensure you have a .pre-commit-config.yaml file in your repository’s root directory. This file defines the hooks that pre-commit will run.

  3. Execute Pre-commit Hooks: Run the pre-commit hooks using the Docker container:

    docker run --rm -v $(pwd):/repo pre-commit-container run --all-files

Benefits

  • Efficiency: Automates pre-commit checks, saving time during the development process.
  • Quality Assurance: Catches issues early, improving the overall code quality.
  • Uniformity: Ensures all team members use the same set of hooks and configurations.
  • Easy Integration: Can be easily integrated into CI/CD pipelines to automate code quality checks.

Integration with CI/CD

To integrate the Dockerized Pre-commit into a CI/CD pipeline, add a step in your pipeline configuration to pull and run the container. Here’s an example for a generic CI pipeline configuration:

steps:
  - name: Run pre-commit hooks
    image: pre-commit-container:latest
    commands:
      - pre-commit run --all-files

Conclusion

The Dockerized Pre-commit container provides a robust solution for managing pre-commit hooks, ensuring consistent and high-quality code across different environments. By leveraging Docker, it simplifies the setup process, eliminates dependency issues, and integrates seamlessly into CI/CD workflows. This approach helps maintain coding standards and improves the overall development process.

About

Dockerized pre-commit

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors