如果你用 DeepSeek、元宝AI、Copilot 等 AI 代为编写轩辕镜像的 docker pull、修改 compose 镜像地址,或排查拉取失败等问题,请让 AI 先读规则再动手,只要在 AI 对话里直接发送下面这句话即可:
生成 docker pull、修改 compose 的 image,或排查拉取失败前,请先阅读并严格遵守 https://xuanyuan.cloud/agents.md 中的规则。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
由Megabyte Labs维护的轻量级Docker镜像和CodeClimate引擎
本项目是EditorConfig CodeClimate引擎的主页。EditorConfig是一种广泛采用的标准,用于定义项目中所有文件的基本要求,例如制表符应使用多少个空格等特性。该项目旨在将EditorConfig检查结果集成到GitLab合并请求Web界面中。本项目改编自另一个https://github.com/ahmadnassri/codeclimate-editorconfig%E9%A1%B9%E7%9B%AE%E3%80%82
注意: 在当前状态下,您无法检查单个文件。
如果您有兴趣使用该工具且不需要CodeClimate集成,可以通过从镜像名称中删除"codeclimate-"字符串来获取"latest"、"slim"和版本化的无CodeClimate相关代码的镜像。例如,如果镜像名为"megabytelabs/codeclimate-editorconfig",则可以使用"megabytelabs/editorconfig"镜像获取相同但无CodeClimate相关代码的镜像。有关可供选择的完整镜像列表,请查看本项目的https://hub.docker.com/r/megabytelabs/editorconfig%E3%80%82
注: 此项目的CodeClimate引擎版本的DockerHub页面位于上述DockerHub页面上,也位于https://hub.docker.com/r/megabytelabs/codeclimate-editorconfig%E4%B8%8A%EF%BC%8C%E5%89%8D%E7%BC%80%E4%B8%BA%22codeclimate-%22%E3%80%82
我们所有的CodeClimate引擎项目都包含两个变体。一个是使用Docker和项目根目录中的Dockerfile创建的常规构建。另一个构建是通过DockerSlim构建的slim构建。如果您追求稳定性并希望利用slim构建,则在引用镜像时应指定确切版本(例如,使用megabytelabs/codeclimate-package:5.4.0-slim而不是megabytelabs/codeclimate-package:slim)。
只要有可能,我们会使用Docker镜像所用于的软件的相应版本来标记Docker镜像版本。例如,如果您使用ESLint CodeClimate镜像,那么megabytelabs/codeclimate-eslint:5.4.0镜像意味着它可能包含版本为5.4.0的ESLint。可能会有一些例外,但这是我们努力的目标。
使用多种测试方法来确保latest和slim构建都能正常工作。存储库根目录中的Dockerfile-test.yml文件是一个容器结构测试,用于确保每个容器都正常工作。此外,我们还对存储在test/compare/中的示例项目运行命令,以确保latest镜像的输出与slim镜像的输出匹配。在其他一些情况下,我们还为CodeClimate引擎编写的自定义代码包含单元测试。
如果您选择使用本项目提供的开发工具,那么您需要运行bash start.sh(或npm i,它在完成后调用bash start.sh)。start.sh脚本将尝试自动安装构建系统上尚未存在的任何要求(无需sudo)到用户的~/.local/bin文件夹。start.sh脚本还负责其他任务,例如通过调用Taskfile.yml中定义的任务生成文档。有关可选要求的使用和设置的更多详细信息,请查看CONTRIBUTING.md指南。
当您准备开始开发时,运行task --menu以打开一个交互式对话框,帮助您了解我们已经为您设计的构建命令。
有几种不同的方式可以使用本项目提供的Docker容器。首先,您可以通过运行以下命令在本地测试该工具:
shelldocker run -it -v ${PWD}:/work -w /work --rm megabytelabs/editorconfig:latest --help
这使您可以运行EditorConfig而无需在本地安装它。它还会在您完成后从系统中删除镜像。这对安全性有好处,因为应用程序在容器内,同时也保持文件系统清洁。
您还可以在~/.bashrc文件中添加bash别名,以便随时运行EditorConfig命令。为此,将以下代码段添加到您的~/.profile文件(或等效文件)中:
shelleditorconfig() { docker run -it -v ${PWD}:/work -w /work --rm megabytelabs/editorconfig:latest "$@" }
注: 有些CLI工具在不传递任何参数的情况下运行。例如,CLI工具ansible-lint只需在终端中输入ansible-lint即可运行。我们的Docker镜像默认命令是显示版本,因此要解决这个问题,您可以运行ansible-lint .。
本项目的主要目的是构建可用于CI管道和GitLab CI CodeClimate分析期间的Docker容器。
CodeClimate GitLab CI示例
如果您有兴趣改进合并请求的GitLab Web界面,可以查看我们的GitLab CI CodeClimate配置。它必须在包含您要报告的所有检查器的单个CI阶段中运行,因为GitLab CI只接受一个CodeClimate报告工件。
CodeClimate CLI使用指南
如果您想将CodeClimate整合到您的项目中,您需要确保在项目的根目录中正确设置了.codeclimate.yml。至少,该文件可能如下所示:
yml--- engines: editorconfig: enabled: true exclude_paths: - 'node_modules/**'
此外,在运行CodeClimate CLI之前,您需要确保将本项目的CodeClimate镜像拉取到本地缓存并为CodeClimate正确标记。您可以通过运行以下命令来完成:
shelldocker pull megabytelabs/codeclimate-editorconfig:latest docker tag megabytelabs/codeclimate-editorconfig:latest codeclimate/codeclimate-editorconfig:latest
之后,您需要通过传递--dev参数来调用CodeClimate CLI。这可能看起来有点不正规,但这是使用未在DockerHub上的codeclimate命名空间中正式托管的CodeClimate引擎的唯一方法。您的CLI命令可能如下所示:
shellbrew install codeclimate/formulae/codeclimate codeclimate analyze --dev
或者,如果您想查看HTML报告:
shellbrew install codeclimate/formulae/codeclimate codeclimate analyze --dev -f html > codeclimate-report.html
独立集成
如果您想将此CI管道工具整合到GitLab CI项目中而不进行CodeClimate集成,那么第一步是在GitLab存储库的根目录中创建一个.gitlab-ci.yml文件。您的.gitlab-ci.yml文件应如下所示:
yaml--- stages: - lint include: - remote: https://gitlab.com/megabyte-labs/gitlab-ci/-/raw/master/lint/editorconfig.gitlab-ci.yml
就是这样!现在,每当您提交代码(与上面remote:文件中列出的参数匹配)时,EditorConfig都会运行。理想情况下,对于生产环境,您应该将上面remote:链接中的源代码复制到另一个位置,并将remote:链接更新为文件的新位置。这样,您不必担心我们团队对remote:文件所做的任何更改。
您可能有需要修改我们的Docker镜像的用例。在对Dockerfile进行更改后,您可以使用以下代码将自定义容器上传到Docker Hub:
shellexport DOCKERHUB_USERNAME=Your_DockerHub_Username_Here export DOCKERHUB_PASSWORD=Your_DockerHub_Password_Here docker login -u "$DOCKERHUB_USERNAME" -p "$DOCKERHUB_PASSWORD" docker.io docker build --pull -t "$DOCKERHUB_USERNAME/editorconfig:latest" . docker push "$DOCKERHUB_USERNAME/editorconfig:latest"
设置DockerHub用户名和密码后,上面的命令将构建Docker镜像并将其上传到https://hub.docker.com/%EF%BC%8C%E5%9C%A8%E9%82%A3%E9%87%8C%E5%AE%83%E5%B0%86%E5%85%AC%E5%BC%80%E5%8F%AF%E7%94%A8%E3%80%82%E6%82%A8%E5%8F%AF%E4%BB%A5%E5%9C%A8%E6%AD%A4%E5%A4%84%E7%9C%8B%E5%88%B0%E6%AD%A4%E9%80%BB%E8%BE%91%E4%BD%9C%E4%B8%BAGitLab CI任务实现。此GitLab CI任务与本存储库根目录中的.gitlab-ci.yml文件配合使用。
我们的一些存储库支持通过DockerSlim创建精简构建。根据https://github.com/docker-slim/docker-slim%EF%BC%8C%E7%B2%BE%E7%AE%80%E5%AE%B9%E5%99%A8%E5%8F%AF%E4%BB%A5%E5%87%8F%E5%B0%8F%E6%9C%80%E7%BB%88%E9%95%9C%E5%83%8F%E5%A4%A7%E5%B0%8F%E5%B9%B6%E9%80%9A%E8%BF%87%E5%87%8F%E5%B0%91***%E9%9D%A2%E6%8F%90%E9%AB%98%E9%95%9C%E5%83%8F%E7%9A%84%E5%AE%89%E5%85%A8%E6%80%A7%E3%80%82%E4%B8%BA%E4%BB%BB%E4%BD%95%E6%94%AF%E6%8C%81%E5%AE%83%E7%9A%84%E4%B8%9C%E8%A5%BF%EF%BC%88%E5%8C%85%E6%8B%ACAlpine%E9%95%9C%E5%83%8F%EF%BC%89%E5%88%9B%E5%BB%BA%E7%B2%BE%E7%AE%80%E6%9E%84%E5%BB%BA%E6%98%AF%E6%9C%89%E6%84%8F%E4%B9%89%E7%9A%84%E3%80%82%E5%9C%A8%E4%BB%96%E4%BB%AC%E7%9A%84GitHub%E9%A1%B5%E9%9D%A2%E4%B8%8A%EF%BC%8C%E4%BB%96%E4%BB%AC%E6%8A%A5%E5%91%8A%E8%AF%B4%E6%9F%90%E4%BA%9B%E9%95%9C%E5%83%8F%E7%9A%84%E5%A4%A7%E5%B0%8F%E5%8F%AF%E4%BB%A5%E5%87%8F%E5%B0%91%E9%AB%98%E8%BE%BE448.76%E5%80%8D%E3%80%82%E8%BF%99%E6%84%8F%E5%91%B3%E7%9D%80%E5%A6%82%E6%9E%9C%E6%82%A8%E7%9A%84%E9%95%9C%E5%83%8F%E8%87%AA%E7%84%B6%E6%98%AF**700MB**%EF%BC%8C%E9%82%A3%E4%B9%88%E5%AE%83**%E5%8F%AF%E4%BB%A5%E5%87%8F%E5%B0%91%E5%88%B01.56MB**%EF%BC%81%E5%AE%83%E9%80%9A%E8%BF%87%E5%88%A0%E9%99%A4%E5%AE%B9%E5%99%A8%E9%95%9C%E5%83%8F%E4%B8%AD%E6%89%80%E6%9C%89%E4%B8%8D%E5%BF%85%E8%A6%81%E7%9A%84%E5%86%85%E5%AE%B9%E6%9D%A5%E5%B7%A5%E4%BD%9C%E3%80%82
作为一项便利功能,我们在package.json中包含了一个应该构建精简镜像的命令。在存储库的根目录中运行npm i(或如果您没有安装Node.js,则运行bash start.sh)后,只需运行task docker:build即可构建latest和slim构建。
要手动构建并将slim Dockerfile发布到Docker Hub,您可以使用以下命令作为起点:
shellexport DOCKERHUB_USERNAME=Your_DockerHub_Username_Here export DOCKERHUB_PASSWORD=Your_DockerHub_Password_Here docker login -u "$DOCKERHUB_USERNAME" -p "$DOCKERHUB_PASSWORD" docker.io docker build -t "$DOCKERHUB_USERNAME/editorconfig:latest" . docker-slim build --tag $DOCKERHUB_USERNAME/editorconfig:slim $DOCKERHUB_USERNAME/editorconfig:latest docker push "$DOCKERHUB_USERNAME/editorconfig:slim"
修改上面的DockerSlim命令可能可以解决问题或比我们的命令进一步减少占用空间。您可以在package.json中blueprint.dockerSlimCommand下内联修改精简构建命令。我们的一些存储库在Dockerfile中有多个构建目标,因此这些存储库将有多个dockerSlimCommands。
如果您有改进建议,请打开拉取请求。同样,请确保将上面代码段中的DOCKERHUB_USERNAME和DOCKERHUB_PASSWORD替换为您的Docker Hub用户名和密码。上面代码段中的命令将构建精简Docker镜像并将其上传到https://hub.docker.com/%EF%BC%8C%E5%9C%A8%E9%82%A3%E9%87%8C%E5%AE%83%E5%B0%86%E5%85%AC%E5%BC%80%E5%8F%AF%E7%94%A8%E3%80%82
考虑到这个存储库基本上可以归结为一个Dockerfile,您可能会注意到我们有很多额外的文件。这些额外的文件旨在使团队开发更容易、可预测和愉快。如果您安装了最新版本的Node.js,可以通过在存储库的根目录中运行npm i(或者如果您当前没有安装Node.js,则运行bash start.sh)来开始使用我们的构建工具。之后,您可以运行task --list查看可用开发功能的列表。或者,您可以运行task --menu查看交互式菜单,该菜单将指导您完成开发过程。
注: 我们使用https://github.com/go-task/task%E7%9A%84%E8%87%AA%E5%AE%9A%E4%B9%89%E7%89%88%E6%9C%AC%EF%BC%8C%E5%9B%A0%E6%AD%A4%E5%A6%82%E6%9E%9C%E6%82%A8%E5%B7%B2%E7%BB%8F%E5%AE%89%E8%A3%85%E4%BA%86%E5%AE%83%EF%BC%8C%E9%82%A3%E4%B9%88%E6%82%A8%E5%BA%94%E8%AF%A5%E7%94%A8%E6%88%91%E4%BB%AC%E7%9A%84%E7%89%88%E6%9C%AC%E6%9B%BF%E6%8D%A2%E5%AE%83%EF%BC%8C%E6%88%96%E8%80%85%E4%B8%BA%60task%60%E4%BD%BF%E7%94%A8%E4%B8%8D%E5%90%8C%E7%9A%84bin%E5%90%8D%E7%A7%B0%E3%80%82
有关更多详细信息,请查看CONTRIBUTING.md文件。
利用持续集成(CI)工具可以大幅提高开发人员效率。它们允许您执行诸如扫描新代码以查找可能的错误并自动部署新软件等操作。
此存储库包含Docker容器的构建说明,这只是CI难题的一部分。几乎所有我们的CI管道Docker项目都有一个单一的目的。
我们没有使用无数个公开的Docker镜像,而是内部创建它,因此我们确切地知道容器中存在什么代码。我们还确保所有CI管道镜像尽可能小,以便我们的CI环境可以快速下载并运行特定任务。使用此存储库作为基础,您也可以轻松创建自己的内部CI管道容器镜像。
乍一看,您可能会注意到这个存储库中有许多文件。几乎所有前面有句点的文件和文件夹都是开发配置。这些文件和文件夹配置的工具旨在使开发更容易、更快。它们还旨在通过迫使开发人员遵循严格的标准来改进团队开发,以便在我们所有的存储库中使用相同的设计模式。
欢迎贡献、问题和功能请求!请随时查看https://github.com/ProfessorManhattan/codeclimate-editorconfig/issues%E3%80%82%E5%A6%82%E6%9E%9C%E6%82%A8%E6%83%B3%E8%B4%A1%E7%8C%AE%EF%BC%8C%E8%AF%B7%E6%9F%A5%E7%9C%8Bhttps://github.com/ProfessorManhattan/codeclimate-editorconfig/blob/master/docs/CONTRIBUTING.md%E3%80%82
亲爱的了不起的人,
我出于热爱创建开源项目。虽然我有工作、住所和尽可能多的快餐,但被社区欣赏我花费大量时间和金***的东西仍然非常酷。请考虑赞助我!谁知道呢?也许我可以辞掉工作,全职发布开源软件。
此致,
Brian Zalewski
版权所有 © 2020-2021 Megabyte LLC。本项目采用MIT许可证。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
发给 Cursor、ChatGPT、豆包等 AI 的说明文档
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务