
cytopia/terraform-docs基于Alpine Linux的轻量级多阶段构建Docker镜像,包含terraform-docs工具及其扩展功能terraform-docs-replace。该工具用于生成Terraform模块的文档,并能在文件中自动安全地替换生成的文档内容。镜像支持多架构,提供多个稳定版本,每日构建并推送到Docker Hub,兼容Terraform >=0.12,适用于CI/CD和自动化文档生成场景。
amd64、i386、arm64、arm/v7、arm/v6(不同版本架构支持可能不同)terraform-docs-replace,可在文件中指定分隔符之间自动更新文档块terraform-docs-012命令)和旧版本(terraform-docs命令)| Docker标签 | Git引用 | Terraform Docs版本 | 可用架构 |
|---|---|---|---|
latest | master | latest | amd64, i386, arm64, arm/v7, arm/v6 |
0.16.0 | master | 0.16.0 | amd64, i386, arm64, arm/v7, arm/v6 |
0.15.0 | master | 0.15.0 | amd64, i386, arm64, arm/v7, arm/v6 |
0.14.1 | master | 0.14.1 | amd64, i386, arm64, arm/v7, arm/v6 |
0.14.0 | master | 0.14.0 | amd64, i386, arm64, arm/v7, arm/v6 |
0.13.0 | master | 0.13.0 | amd64, i386, arm64, arm/v7, arm/v6 |
0.12.1 | master | 0.12.1 | amd64, i386, arm64, arm/v7, arm/v6 |
0.12.0 | master | 0.12.0 | amd64, i386, arm64, arm/v7, arm/v6 |
0.11.2 | master | 0.11.2 | amd64 |
0.11.1 | master | 0.11.1 | amd64 |
0.11.0 | master | 0.11.0 | amd64 |
0.10.1 | master | 0.10.1 | amd64 |
0.10.0 | master | 0.10.0 | amd64 |
0.9.1 | master | 0.9.1 | amd64 |
0.9.0 | master | 0.9.0 | amd64 |
0.8.2 | master | 0.8.2 | amd64 |
0.8.1 | master | 0.8.1 | amd64 |
0.8.0 | master | 0.8.0 | amd64 |
0.7.0 | master | 0.7.0 | amd64 |
0.6.0 | master | 0.6.0 | amd64 |
0.5.0 | master | 0.5.0 | amd64 |
0.4.5 | master | 0.4.5 | amd64 |
0.4.0 | master | 0.4.0 | amd64 |
0.3.0 | master | 0.3.0 | amd64 |
0.2.0 | master | 0.2.0 | amd64 |
0.1.1 | master | 0.1.1 | amd64 |
0.1.0 | master | 0.1.0 | amd64 |
| Docker标签 | Git引用 | Terraform Docs版本 | 可用架构 |
|---|---|---|---|
latest-0.32 | tag: 0.32 | latest | amd64, i386, arm64, arm/v7, arm/v6 |
0.16.0-0.32 | tag: 0.32 | 0.16.0 | amd64, i386, arm64, arm/v7, arm/v6 |
0.15.0-0.32 | tag: 0.32 | 0.15.0 | amd64, i386, arm64, arm/v7, arm/v6 |
0.14.1-0.32 | tag: 0.32 | 0.14.1 | amd64, i386, arm64, arm/v7, arm/v6 |
0.14.0-0.32 | tag: 0.32 | 0.14.0 | amd64, i386, arm64, arm/v7, arm/v6 |
0.13.0-0.32 | tag: 0.32 | 0.13.0 | amd64, i386, arm64, arm/v7, arm/v6 |
0.12.1-0.32 | tag: 0.32 | 0.12.1 | amd64, i386, arm64, arm/v7, arm/v6 |
0.12.0-0.32 | tag: 0.32 | 0.12.0 | amd64, i386, arm64, arm/v7, arm/v6 |
0.11.2-0.32 | tag: 0.32 | 0.11.2 | amd64 |
0.11.1-0.32 | tag: 0.32 | 0.11.1 | amd64 |
0.11.0-0.32 | tag: 0.32 | 0.11.0 | amd64 |
0.10.1-0.32 | tag: 0.32 | 0.10.1 | amd64 |
0.10.0-0.32 | tag: 0.32 | 0.10.0 | amd64 |
0.9.1-0.32 | tag: 0.32 | 0.9.1 | amd64 |
0.9.0-0.32 | tag: 0.32 | 0.9.0 | amd64 |
0.8.2-0.32 | tag: 0.32 | 0.8.2 | amd64 |
0.8.1-0.32 | tag: 0.32 | 0.8.1 | amd64 |
0.8.0-0.32 | tag: 0.32 | 0.8.0 | amd64 |
0.7.0-0.32 | tag: 0.32 | 0.7.0 | amd64 |
0.6.0-0.32 | tag: 0.32 | 0.6.0 | amd64 |
0.5.0-0.32 | tag: 0.32 | 0.5.0 | amd64 |
0.4.5-0.32 | tag: 0.32 | 0.4.5 | amd64 |
0.4.0-0.32 | tag: 0.32 | 0.4.0 | amd64 |
0.3.0-0.32 | tag: 0.32 | 0.3.0 | amd64 |
0.2.0-0.32 | tag: 0.32 | 0.2.0 | amd64 |
0.1.1-0.32 | tag: 0.32 | 0.1.1 | amd64 |
0.1.0-0.32 | tag: 0.32 | 0.1.0 | amd64 |
| 变量名 | 默认值 | 是否必须 | 说明 |
|---|---|---|---|
| DELIM_START | <!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK --> | 否 | 文件中用于标识文档块开始的分隔符 |
| DELIM_CLOSE | <!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK --> | 否 | 文件中用于标识文档块结束的分隔符 |
容器内工作目录为/data/,需将本地Terraform模块所在目录挂载到此路径,以便工具访问模块文件:
bash-v $(pwd):/data
bashUsage: cytopia/terraform-docs terraform-docs <ARGS> . cytopia/terraform-docs terraform-docs-012 <ARGS> . cytopia/terraform-docs terraform-docs-replace <ARGS> <PATH-TO-FILE> cytopia/terraform-docs terraform-docs-replace-012 <ARGS> <PATH-TO-FILE> terraform-docs 标准terraform-docs输出(适用于Terraform <0.12) terraform-docs-012 适用于Terraform >=0.12的terraform-docs输出 terraform-docs-replace 在文件中替换文档块(适用于Terraform <0.12) terraform-docs-replace-012 在文件中替换文档块(适用于Terraform >=0.12) <ARGS> terraform-docs支持的所有参数 <PATH-TO-FILE> 要替换文档块的文件路径
生成Markdown格式文档并输出到标准输出:
bash# [Terraform < 0.12] docker run --rm \ -v $(pwd):/data \ cytopia/terraform-docs \ terraform-docs --sort-by-required md . # [Terraform >= 0.12] docker run --rm \ -v $(pwd):/data \ cytopia/terraform-docs \ terraform-docs-012 --sort-by-required md .
将生成的文档保存到文件(如README.md):
bash# [Terraform < 0.12] docker run --rm \ -v $(pwd):/data \ cytopia/terraform-docs \ terraform-docs --sort-by-required md . > README.md # [Terraform >= 0.12] docker run --rm \ -v $(pwd):/data \ cytopia/terraform-docs \ terraform-docs-012 --sort-by-required md . > README.md
在现有文件(如README.md)中替换文档块,需确保文件中包含默认分隔符:
markdown<!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK --> ## Inputs ... <!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
执行替换命令:
bash# [Terraform < 0.12] docker run --rm \ -v $(pwd):/data \ cytopia/terraform-docs \ terraform-docs-replace --sort-by-required md README.md # [Terraform >= 0.12] docker run --rm \ -v $(pwd):/data \ cytopia/terraform-docs \ terraform-docs-replace-012 --sort-by-required md README.md
通过环境变量自定义分隔符,例如INFO.md中使用<!-- TFDOC_START -->和<!-- TFDOC_END -->:
bash# [Terraform < 0.12] docker run --rm \ -v $(pwd):/data \ -e DELIM_START='<!-- TFDOC_START -->' \ -e DELIM_CLOSE='<!-- TFDOC_END -->' \ cytopia/terraform-docs \ terraform-docs-replace --sort-by-required md INFO.md # [Terraform >= 0.12] docker run --rm \ -v $(pwd):/data \ -e DELIM_START='<!-- TFDOC_START -->' \ -e DELIM_CLOSE='<!-- TFDOC_END -->' \ cytopia/terraform-docs \ terraform-docs-replace-012 --sort-by-required md INFO.md
以下项目展示了如何在CI中使用此镜像验证README.md是否更新了最新文档:
以下是相关的CI工具Docker镜像,可用于代码分析和自动化测试:
| GitHub | DockerHub | 类型 | 描述 |
|---|---|---|---|
| [awesome-ci][aci-git-lnk] | [![aci-hub-img]][aci-hub-lnk] | 基础工具 | 用于Git、文件和静态代码分析的工具集 |
| [file-lint][flint-git-lnk] | [![flint-hub-img]][flint-hub-lnk] | 基础分析 | 基础源代码分析工具 |
| [linkcheck][linkcheck-git-lnk] | [![linkcheck-hub-img]][linkcheck-hub-lnk] | 基础工具 | 搜索文件中的URL并验证其HTTP状态码 |
| [ansible][ansible-git-lnk] | [![ansible-hub-img]][ansible-hub-lnk] | Ansible | 多版本和风格的Ansible |
| [ansible-lint][alint-git-lnk] | [![alint-hub-img]][alint-hub-lnk] | Ansible | Ansible代码检查工具 |
| [gofmt][gfmt-git-lnk] | [![gfmt-hub-img]][gfmt-hub-lnk] | Go | Go源代码格式化工具 [1] |
| [goimports][gimp-git-lnk] | [![gimp-hub-img]][gimp-hub-lnk] | Go | Go源代码格式化工具 [1] |
| [golint][glint-git-lnk] | [![glint-hub-img]][glint-hub-lnk] | Go | Go代码检查工具 |
| [eslint][elint-git-lnk] | [![elint-hub-img]][elint-hub-lnk] | JavaScript | JavaScript代码检查工具 |
| [jsonlint][jlint-git-lnk] | [![jlint-hub-img]][jlint-hub-lnk] | JSON | JSON文件检查工具 **[1]</ |



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务