
bonhams/pre-commit本镜像专为Python项目设计,提供开箱即用的pre-commit钩子环境,集成多种Python代码质量工具,支持在代码提交前自动化执行格式化、静态检查、类型验证等操作,无需在本地配置复杂依赖,简化开发流程并确保代码规范统一。
.pre-commit-config.yaml自定义钩子类型、工具版本及参数.pre-commit-config.yaml配置文件(无配置时使用默认规则)bash# 检查所有文件(首次运行会下载依赖,需联网) docker run --rm -v $(pwd):/app -w /app [镜像名称] pre-commit run --all-files # 检查暂存文件(模拟git commit触发的钩子行为) docker run --rm -v $(pwd):/app -w /app [镜像名称] pre-commit run
通过项目根目录的.pre-commit-config.yaml文件定义检查规则,示例配置:
yamlrepos: - repo: [***] rev: 24.4.2 # 指定black版本 hooks: - id: black args: [--line-length=120] # 自定义行长度 - repo: [***] rev: 7.0.0 hooks: - id: flake8 args: [--max-line-length=120, --ignore=E203] # 忽略特定规则 - repo: [***] rev: 1.8.0 hooks: - id: mypy args: [--strict, --config-file=mypy.ini] # 使用自定义配置文件
run-pre-commit.sh):
bash#!/bin/bash docker run --rm -v $(pwd):/app -w /app [镜像名称] pre-commit run "$@"
chmod +x run-pre-commit.sh此后执行bash# 链接脚本到Git钩子目录 ln -s ../../run-pre-commit.sh .git/hooks/pre-commit
git commit时将自动触发检查,若检查失败则阻止提交PRE_COMMIT_CONFIG:自定义配置文件路径,默认值为/app/.pre-commit-config.yamldocker run -e PRE_COMMIT_CONFIG=/app/configs/pre-commit.yaml .../app目录(或通过-w指定其他工作目录).flake8、pyproject.toml、mypy.ini等配置文件挂载到容器内对应路径,确保工具读取自定义规则requirements.txt并在容器内执行pip install -r requirements.txt实现.gitignore排除,避免挂载到容器内manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务