
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
由Megabyte Labs维护的性能优化CodeClimate引擎。
本项目是Flake8 的https://codeclimate.com/引擎,旨在将Flake8代码检查结果集成到GitLab合并请求的Web UI中。同时,项目还生成独立的轻量级Flake8实例,可快速在CI/CD pipeline中运行。
Flake8是以下工具的包装器:
Flake8支持通过插件扩展,可在https://github.com/DmytroLitvinov/awesome-flake8-extensions找到丰富的插件资源。
若无需CodeClimate集成,可使用不带codeclimate-前缀的镜像(如megabytelabs/flake8而非megabytelabs/codeclimate-flake8)获取latest、slim及版本化镜像。完整镜像列表可查看https://hub.docker.com/r/megabytelabs/flake8。
注:CodeClimate引擎版本的DockerHub页面除上述链接外,另有https://hub.docker.com/r/megabytelabs/codeclimate-flake8。
所有CodeClimate引擎项目均包含两种变体:常规构建(基于项目根目录的Dockerfile)和slim构建(通过DockerSlim生成)。若追求稳定性并希望使用slim构建,建议引用镜像时指定确切版本(如megabytelabs/codeclimate-package:5.4.0-slim而非megabytelabs/codeclimate-package:slim)。
尽可能将Docker镜像版本与对应软件版本关联。例如,megabytelabs/codeclimate-eslint:5.4.0通常包含5.4.0版本的ESLint(可能存在例外)。
通过多种测试方法确保latest和slim构建正常工作:
Dockerfile-test.yml文件中的容器结构测试test/compare/目录下样本项目运行命令,验证latest与slim镜像输出一致性Taskfile.yml动态安装的需求(基于自定义https://github.com/go-task/task分支**https://github.com/ProfessorManhattan/Bodega**)若使用项目提供的开发工具,需运行bash start.sh(或npm i,完成后会调用bash start.sh)。start.sh脚本会自动安装构建系统中缺失的依赖(无需sudo)到用户的~/.local/bin目录,并生成文档等。开发就绪后,运行task --menu可打开交互式对话框了解构建命令。
通过以下命令在本地测试工具,无需本地安装Flake8,容器退出后自动清理:
shelldocker run -it -v ${PWD}:/work -w /work --rm docker.xuanyuan.run/megabytelabs/flake8:latest --help
将以下代码添加到~/.profile(或等效文件),以便随时运行Flake8命令:
shellflake8() { docker run -it -v ${PWD}:/work -w /work --rm docker.xuanyuan.run/megabytelabs/flake8:latest "$@" }
注:部分CLI工具无参数时运行(如
ansible-lint),由于Docker镜像默认命令为显示版本,需通过ansible-lint .方式运行。
CodeClimate GitLab CI示例
若需改进GitLab合并请求Web UI,可参考https://gitlab.com/megabyte-labs/gitlab-ci/-/raw/master/lint/codeclimate.gitlab-ci.yml。需在包含所有要报告的检查器的单个CI阶段运行,因为GitLab CI仅接受一个CodeClimate报告工件。
CodeClimate CLI步骤
.codeclimate.yml,至少包含:yml--- engines: flake8: enabled: true exclude_paths: - 'node_modules/**'
shelldocker pull docker.xuanyuan.run/megabytelabs/codeclimate-flake8:latest docker tag megabytelabs/codeclimate-flake8:latest codeclimate/codeclimate-flake8:latest
--dev参数用于非官方CodeClimate命名空间引擎):shellbrew install codeclimate/formulae/codeclimate codeclimate analyze --dev
生成HTML报告:
shellcodeclimate analyze --dev -f html > codeclimate-report.html
独立集成
在GitLab CI中不使用CodeClimate集成时,创建.gitlab-ci.yml:
yaml--- stages: - lint include: - remote: https://gitlab.com/megabyte-labs/gitlab-ci/-/raw/master/lint/flake8.gitlab-ci.yml
建议:生产环境中,将上述
remote链接的源代码复制到其他位置并更新链接,避免依赖外部文件变更。
项目优先在.config/flake8.toml查找配置,若无则使用标准位置。
当前引擎仅加载Flake8基础功能,不含额外插件。若需添加插件并了解实现方法,欢迎提交PR。
修改Dockerfile后,通过以下命令上传自定义容器到Docker Hub:
shellexport DOCKERHUB_USERNAME=你的DockerHub用户名 export DOCKERHUB_PASSWORD=你的DockerHub密码 docker login -u "$DOCKERHUB_USERNAME" -p "$DOCKERHUB_PASSWORD" docker.io docker build --pull -t "$DOCKERHUB_USERNAME/flake8:latest" . docker push "$DOCKERHUB_USERNAME/flake8:latest"
通过https://gitlab.com/megabyte-labs/ansible-roles/dockerslim可减小镜像体积并提升安全性。运行`npm i(或bash start.sh)后,执行task docker:build可构建latest和slim`版本。
手动构建并发布slim镜像到Docker Hub:
shellexport DOCKERHUB_USERNAME=你的DockerHub用户名 export DOCKERHUB_PASSWORD=你的DockerHub密码 docker login -u "$DOCKERHUB_USERNAME" -p "$DOCKERHUB_PASSWORD" docker.io docker build -t "$DOCKERHUB_USERNAME/flake8:latest" . docker-slim build --tag $DOCKERHUB_USERNAME/flake8:slim $DOCKERHUB_USERNAME/flake8:latest docker push "$DOCKERHUB_USERNAME/flake8:slim"
可修改package.json中blueprint.dockerSlimCommand调整构建命令。
项目包含辅助开发的额外文件,通过Node.js环境运行npm i(或bash start.sh)后,可使用task --list查看可用开发功能,或task --menu打开交互式菜单。
注:使用自定义版本的https://github.com/go-task/task,若已安装需替换或使用不同命令名。
持续集成(CI)工具可显著提升开发效率,如扫描代码错误、自动部署软件。本项目是CI拼图的一部分,几乎所有https://gitlab.com/megabyte-labs/dockerfile/ci-pipeline均专注单一功能。
通过内部构建容器,确保代码透明度,同时最小化镜像体积以加快CI环境下载和运行速度。项目中的配置文件旨在规范开发流程,提升团队协作效率。
欢迎贡献、报告问题和提出功能请求!可查看https://github.com/megabyte-labs/codeclimate-flake8/issues。贡献前请参考https://github.com/megabyte-labs/codeclimate-flake8/blob/master/docs/CONTRIBUTING.md。
https://opencollective.com/megabytelabs https://github.com/ProfessorManhattan
亲爱的用户,
我出于热爱创建开源项目。尽管有工作、住所和充足的食物,但能得到社区对我投入大量时间和***的认可仍然很酷。请考虑赞助我!也许我能辞职全职投入开源。
此致,
Brian Zalewski
以下服务通过我们的链接注册可获得特别奖励:
https://www.digitalocean.com/?refcode=751743d45e36&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge版权所有 © 2020-2021 Megabyte LLC。本项目采用https://gitlab.com/megabyte-labs/docker/codeclimate/flake8/-/blob/master/LICENSE许可。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务