
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Pipeline Components: Shellcheck 是一个包含 Shellcheck 工具的 Docker 镜像,专为 GitLab CI/CD 流水线设计。Shellcheck 是一款开源的 Shell 脚本静态分析工具,可检测脚本中的语法错误、常见陷阱、不符合最佳实践的代码等问题。本镜像的主要用途是在 GitLab CI/CD 流程中集成 Shell 脚本的自动化 linting 检查,提升脚本质量和可靠性。
.sh 文件扩展名、Shebang 声明)。xargs -P 实现多进程并行检查,提升大型项目的检查效率。linting 阶段,在代码构建或测试前对 Shell 脚本进行自动化检查。基础用法
在 GitLab CI 配置文件(.gitlab-ci.yml)中添加如下阶段,对项目中所有 .sh 文件执行 Shellcheck 检查:
yamlshellcheck: stage: linting # 属于 linting 阶段 image: registry.gitlab.com/pipeline-components/shellcheck:latest # 使用本镜像 script: - | # 查找所有 .sh 文件(排除 .git 目录),并逐个执行 shellcheck find . -name .git -type d -prune -o -type f -name \*.sh -print0 | xargs -0 -r -n1 shellcheck
说明:
find . -name .git -type d -prune:排除 .git 目录,避免检查版本控制相关文件。-name \*.sh:匹配所有 .sh 扩展名的文件。xargs -0 -r -n1 shellcheck:通过 xargs 传递文件路径给 shellcheck,-0 处理含空格的文件名,-r 无文件时不执行,-n1 每次处理 1 个文件。高级用法(并行检查 + Shebang 识别)
以下配置支持并行处理以加速检查,并自动识别带有 Shebang(如 #!/bin/bash)的非 .sh 文件:
yamlshellcheck: stage: linting image: registry.gitlab.com/pipeline-components/shellcheck:latest script: # 检查所有 .sh 文件(并行处理) - | find . -name .git -type d -prune -o -type f -name \*.sh -print0 | xargs -0 -P $(nproc) -r -n1 shellcheck # -P $(nproc) 按 CPU 核心数并行处理 # 检查带有 Shebang 的非 .sh 文件(如无扩展名但以 #!/bin/sh 开头的脚本) - | find . -name .git -type d -prune -o -type f -regex '.*/[^.]* **说明**: - `-P $(nproc)`:使用 `nproc` 获取 CPU 核心数,实现并行检查,提升效率。 - 第二部分通过 `head -n1 "$FILE" |grep -q "^#\\! \?/.\+\(ba|d|k\)\?sh"` 匹配 Shebang(如 `#!/bin/bash`、`#!/dash` 等),对符合条件的文件执行 Shellcheck。 ### Docker 命令行使用 除 CI/CD 集成外,可通过 `docker run` 在本地直接运行镜像检查脚本: ```bash # 检查当前目录下的 script.sh 文件(挂载本地目录到容器内 /app) docker run --rm -v $(pwd):/app pipelinecomponents/shellcheck shellcheck /app/script.sh # 检查当前目录下所有 .sh 文件(使用 find 命令) docker run --rm -v $(pwd):/app pipelinecomponents/shellcheck sh -c "find /app -name '*.sh' -print0 | xargs -0 shellcheck"
参数说明:
--rm:容器退出后自动删除。-v $(pwd):/app:将当前工作目录挂载到容器内 /app 目录,使容器可访问本地脚本文件。若需通过 Docker Compose 管理(适用于固定检查任务),可创建 docker-compose.yml:
yamlversion: '3' services: shellcheck: image: pipelinecomponents/shellcheck volumes: - ./:/app # 挂载本地目录到容器 /app command: sh -c "find /app -name '*.sh' -print0 | xargs -0 shellcheck" # 检查所有 .sh 文件
运行检查:
bashdocker-compose up
本项目采用语义化版本控制(Semantic Versioning),版本号格式为 MAJOR.MINOR.PATCH,具体规则参见 Semantic Versioning。
本项目欢迎代码贡献和使用反馈,贡献指南详见 贡献文档。
本项目基于 MIT 许可证 开源,由 Robbert Müller 维护。 -print0 | # 匹配无扩展名的文件 xargs -0 -P $(nproc) -r -n1 sh -c 'FILE="$0"; if head -n1 "$FILE" |grep -q "^#\! ?/.+(ba|d|k)?sh" ; then shellcheck "$FILE" ; else /bin/true ; fi '
**说明**: - __CODE_TOKEN_22__:使用 __CODE_TOKEN_23__ 获取 CPU 核心数,实现并行检查,提升效率。 - 第二部分通过 __CODE_TOKEN_24__ 匹配 Shebang(如 __CODE_TOKEN_25__、__CODE_TOKEN_26__ 等),对符合条件的文件执行 Shellcheck。 ### Docker 命令行使用 除 CI/CD 集成外,可通过 __CODE_TOKEN_27__ 在本地直接运行镜像检查脚本: __CODE_TOKEN_2__ **参数说明**: - __CODE_TOKEN_28__:容器退出后自动删除。 - __CODE_TOKEN_29__:将当前工作目录挂载到容器内 __CODE_TOKEN_30__ 目录,使容器可访问本地脚本文件。 ### Docker Compose 配置(可选) 若需通过 Docker Compose 管理(适用于固定检查任务),可创建 __CODE_TOKEN_31__: __CODE_TOKEN_3__ 运行检查: __CODE_TOKEN_4__ ## 版本控制 本项目采用**语义化版本控制(Semantic Versioning)**,版本号格式为 __CODE_TOKEN_32__,具体规则参见 Semantic Versioning。 ## 支持与贡献 ### 支持渠道 - ***** 社区**:通过 *** 频道 提问。 - **Issue 跟踪**:在 GitLab 仓库 提交问题。 ### 贡献指南 本项目欢迎代码贡献和使用反馈,贡献指南详见 贡献文档。 ## 许可证 本项目基于 MIT 许可证 开源,由 Robbert Müller 维护。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 pipelinecomponents/shellcheck 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: