
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Terraform Provider Lint Tool(以下简称"TF Provider Lint")Docker镜像是一款封装了Terraform Provider静态代码分析工具的容器化解决方案。其核心用途是对Terraform Provider源代码进行自动化检查,识别语法错误、代码风格问题、最佳实践违背及潜在逻辑缺陷,支持自定义规则扩展,帮助开发者提升Provider代码质量、一致性及可靠性。
terraform provider validate前置检查)。从容器仓库拉取最新版本镜像(请替换<image-name>为实际镜像名称,如hashicorp/terraform-provider-lint):
bashdocker pull docker.xuanyuan.run/<image-name>:latest
docker run)4.3.1 基础检查命令
挂载本地Provider源代码目录到容器内/workspace路径,执行默认规则检查:
bashdocker run -v $(pwd):/workspace <image-name>:latest \ lint /workspace # /workspace为容器内代码根目录
-v $(pwd):/workspace:将当前目录(本地Provider代码)挂载到容器内工作目录。lint /workspace:容器入口命令,指定对/workspace目录下的代码执行检查。4.3.2 输出结果示例
默认输出文本格式结果,包含错误级别(ERROR/WARN/INFO)、规则ID、文件路径及问题描述:
[ERROR] RULE-ID: RESOURCE-NAME-001 File: ./internal/provider/resource_example.go:15 Message: Resource name "example_resource" must follow snake_case format (expected "example_resource_v1"). [WARN] RULE-ID: PARAM-VALIDATION-002 File: ./internal/provider/schema_example.go:23 Message: Parameter "max_size" missing validation for minimum value (recommended: min(1)).
4.4.1 自定义规则文件
通过挂载自定义规则目录,扩展或覆盖默认规则:
./custom-rules),包含规则文件(如rules.yaml)。/config/rules,并通过--rule-dir参数指定:bashdocker run -v $(pwd):/workspace -v $(pwd)/custom-rules:/config/rules <image-name>:latest \ lint /workspace --rule-dir /config/rules
4.4.2 忽略文件配置
通过.tfproviderlintignore文件指定无需检查的文件或规则(格式类似.gitignore):
.tfproviderlintignore,内容示例:# 忽略测试文件 **/*_test.go # 忽略特定规则 RULE-ID:RESOURCE-NAME-001
/workspace/.tfproviderlintignore(或通过--ignore-file指定路径):bashdocker run -v $(pwd):/workspace <image-name>:latest \ lint /workspace --ignore-file /workspace/.tfproviderlintignore
4.4.3 输出格式设置
通过--output-format参数指定输出格式(支持text/json/html),并挂载目录保存结果文件:
bash# 输出JSON格式到本地./reports目录 docker run -v $(pwd):/workspace -v $(pwd)/reports:/output <image-name>:latest \ lint /workspace --output-format json --output-path /output/lint-report.json
创建docker-compose.yml简化多环境配置(如固定规则、输出目录):
yamlversion: '3.8' services: tf-provider-lint: image: docker.xuanyuan.run/<image-name>:latest volumes: - ./:/workspace # 挂载代码目录 - ./custom-rules:/config/rules # 挂载自定义规则 - ./reports:/output # 挂载输出目录 command: > lint /workspace --rule-dir /config/rules --ignore-file /workspace/.tfproviderlintignore --output-format html --output-path /output/lint-report.html environment: - LOG_LEVEL=info # 日志级别(info/warn/debug)
启动检查:
bashdocker-compose up
| 参数名 | 描述 | 默认值 | 示例 |
|---|---|---|---|
--rule-dir | 自定义规则文件目录路径(容器内) | /app/default-rules | --rule-dir /config/rules |
--ignore-file | 忽略规则配置文件路径(容器内) | /workspace/.tfproviderlintignore | --ignore-file /config/ignore |
--output-format | 输出格式(text/json/html) | text | --output-format json |
--output-path | 输出文件路径(容器内,需挂载目录) | 无(stdout输出) | --output-path /output/report.json |
--log-level | 日志级别(info/warn/debug/error) | info | --log-level debug |
| 环境变量名 | 描述 | 默认值 | 示例 |
|---|---|---|---|
TF_PROVIDER_LINT_RULE_DIR | 等效于--rule-dir参数 | /app/default-rules | TF_PROVIDER_LINT_RULE_DIR=/config/rules |
TF_PROVIDER_LINT_IGNORE_FILE | 等效于--ignore-file参数 | /workspace/.tfproviderlintignore | TF_PROVIDER_LINT_IGNORE_FILE=/config/ignore |
--user $(id -u):$(id -g)参数,使用当前用户ID运行容器。--rule-dir路径是否正确,规则文件格式是否符合要求(参考规则文件规范)。:v1.2.0)而非latest,或配置镜像缓存。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务