
如果你使用 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容器,配备全面的DevOps工具,用于多云基础设施即代码。提供针对AWS、Azure、GCP或全云环境优化的多种版本。
https://img.shields.io/docker/v/oorabona/terraform?sort=semver&label=Docker%20Hub](https://hub.docker.com/r/oorabona/terraform) https://img.shields.io/badge/GHCR-oorabona%2Fterraform-blue](https://ghcr.io/oorabona/terraform) https://github.com/oorabona/docker-containers/actions/workflows/auto-build.yaml/badge.svg](https://github.com/oorabona/docker-containers/actions/workflows/auto-build.yaml)
bash# 包含所有云CLI的完整版本(推荐用于开发) docker pull ***-ghcr.xuanyuan.run/oorabona/terraform:latest # 基础版本(最小镜像,无云CLI) docker pull ***-ghcr.xuanyuan.run/oorabona/terraform:latest-base # AWS专用版本 docker pull ***-ghcr.xuanyuan.run/oorabona/terraform:latest-aws # Azure专用版本 docker pull ***-ghcr.xuanyuan.run/oorabona/terraform:latest-azure # GCP专用版本 docker pull ***-ghcr.xuanyuan.run/oorabona/terraform:latest-gcp
所有版本均包含核心安全和DevOps工具集。区别在于包含的云CLI:
| 版本 | 描述 | 云CLI | 使用场景 |
|---|---|---|---|
| base | 仅包含核心工具 | 无 | 最小镜像,与云无关 |
| aws | AWS优化版 | AWS CLI | 仅AWS基础设施 |
| azure | Azure优化版 | Azure CLI | 仅Azure基础设施 |
| gcp | GCP优化版 | Google Cloud SDK | 仅GCP基础设施 |
| full | 全云版本 | AWS CLI + Azure CLI + Google Cloud SDK + j2cli | 多云环境或开发 |
基础版 (*-base)
包含Terraform、安全扫描、代码检查和文档工具。无云提供商CLI。镜像体积最小。
工具:
AWS版 (*-aws)
包含基础版工具 + AWS CLI,适用于Amazon Web Services基础设施。
附加工具:
Azure版 (*-azure)
包含基础版工具 + Azure CLI,适用于Microsoft Azure基础设施。
附加工具:
GCP版 (*-gcp)
包含基础版工具 + Google Cloud SDK,适用于Google Cloud Platform基础设施。
附加工具:
完整版 (*-full)
包含所有云CLI以及Jinja2模板引擎。推荐用于:
附加工具:
ghcr.io/oorabona/terraform:{version}-{flavor}
示例:
latest 或 latest-full - 最新Terraform,包含所有云工具latest-base - 最新Terraform,无云CLIlatest-aws - 最新Terraform,包含AWS CLI1.10.3-azure - Terraform 1.10.3,包含Azure CLI所有版本均已固定,并自动监控更新:
| 工具 | 版本 | 描述 | 适用版本 |
|---|---|---|---|
| Terraform | (上游最新) | 基础设施即代码工具 | 所有 |
| TFLint | 0.60.0 | Terraform代码检查工具 | 所有 |
| Trivy | 0.69.1 | 安全扫描工具 | 所有 |
| Terragrunt | 0.99.1 | Terraform编排工具 | 所有 |
| terraform-docs | 0.21.0 | 文档生成工具 | 所有 |
| Infracost | 0.10.43 | 云成本估算工具 | 所有 |
| GitHub CLI | 2.86.0 | GitHub自动化工具 | 所有 |
| AWS CLI | 1.44.33 | Amazon Web Services CLI | aws, full |
| Azure CLI | 2.83.0 | Microsoft Azure CLI | azure, full |
| Google Cloud SDK | latest | Google Cloud Platform CLI | gcp, full |
| j2cli | (最新) | Jinja2模板CLI | full |
所有版本均包含:
yamlservices: terraform: image: ***-ghcr.xuanyuan.run/oorabona/terraform:latest user: "1000:1000" volumes: - .:/data - ~/.aws:/home/terraform/.aws:ro # AWS凭证(只读) - ~/.azure:/home/terraform/.azure:ro # Azure凭证(只读) - ~/.config/gcloud:/home/terraform/.config/gcloud:ro # GCP凭证(只读) environment: # 从环境变量传递凭证,切勿硬编码 - AWS_ACCESS_KEY_ID - AWS_SECRET_ACCESS_KEY - AWS_DEFAULT_REGION - AZURE_SUBSCRIPTION_ID - AZURE_TENANT_ID - AZURE_CLIENT_ID - AZURE_CLIENT_SECRET - GOOGLE_APPLICATION_CREDENTIALS - TF_VAR_project_id
bash# 初始化和计划 docker run --rm \ -v $(pwd):/data \ -v ~/.aws:/home/terraform/.aws:ro \ ***-ghcr.xuanyuan.run/oorabona/terraform:latest-aws \ init docker run --rm \ -v $(pwd):/data \ -v ~/.aws:/home/terraform/.aws:ro \ -e AWS_DEFAULT_REGION \ ***-ghcr.xuanyuan.run/oorabona/terraform:latest-aws \ plan # 使用环境凭证应用 docker run --rm -it \ -v $(pwd):/data \ -e AWS_ACCESS_KEY_ID \ -e AWS_SECRET_ACCESS_KEY \ -e AWS_DEFAULT_REGION \ ***-ghcr.xuanyuan.run/oorabona/terraform:latest-aws \ apply
完整版包含j2cli,用于基于模板的基础设施:
bash# 创建带.j2扩展名的Terraform模板文件 # 示例:main.tf.j2 resource "aws_instance" "{{ instance_name }}" { instance_type = "{{ instance_type }}" ami = "{{ ami_id }}" } # 创建包含模板变量的config.json { "instance_name": "web-server", "instance_type": "t3.micro", "ami_id": "ami-12345678" } # 处理模板 docker run --rm \ -v $(pwd):/data \ ***-ghcr.xuanyuan.run/oorabona/terraform:latest \ bash -c "for f in *.tf.j2; do j2 \$f config.json > \${f%.j2}; done && terraform plan"
bash# 扫描Terraform配置中的错误配置 docker run --rm -v $(pwd):/data ***-ghcr.xuanyuan.run/oorabona/terraform:latest \ trivy config . # 详细输出扫描 docker run --rm -v $(pwd):/data ***-ghcr.xuanyuan.run/oorabona/terraform:latest \ trivy config --format table --severity HIGH,CRITICAL . # 扫描敏感数据 docker run --rm -v $(pwd):/data ***-ghcr.xuanyuan.run/oorabona/terraform:latest \ trivy fs --scanners secret .
bash# 初始化TFLint插件 docker run --rm -v $(pwd):/data ***-ghcr.xuanyuan.run/oorabona/terraform:latest \ tflint --init # 检查Terraform文件 docker run --rm -v $(pwd):/data ***-ghcr.xuanyuan.run/oorabona/terraform:latest \ tflint # 使用AWS插件检查 docker run --rm -v $(pwd):/data ***-ghcr.xuanyuan.run/oorabona/terraform:latest-aws \ tflint --config=.tflint.hcl
bash# 从Terraform模块生成README.md docker run --rm -v $(pwd):/data ***-ghcr.xuanyuan.run/oorabona/terraform:latest \ terraform-docs markdown table . > README.md # 生成JSON输出 docker run --rm -v $(pwd):/data ***-ghcr.xuanyuan.run/oorabona/terraform:latest \ terraform-docs json . > module.json
bash# 生成成本明细 docker run --rm -v $(pwd):/data ***-ghcr.xuanyuan.run/oorabona/terraform:latest \ infracost breakdown --path . # 比较分支间成本差异 docker run --rm -v $(pwd):/data ***-ghcr.xuanyuan.run/oorabona/terraform:latest \ infracost diff --path .
bash# 构建特定版本 docker build --build-arg VERSION=latest --build-arg FLAVOR=aws -t terraform:aws . # 构建完整版(默认) docker build --build-arg VERSION=latest -t terraform:full . # 构建基础版 docker build --build-arg VERSION=latest --build-arg FLAVOR=base -t terraform:base .
| 参数 | 描述 | 默认值 |
|---|---|---|
VERSION | Terraform版本 | latest |
UPSTREAM_VERSION | 原始Terraform版本(无后缀) | (从VERSION派生) |
FLAVOR | 要构建的版本 | full |
TFLINT_VERSION | TFLint版本 | 0.60.0 |
TRIVY_VERSION | Trivy版本 | 0.69.1 |
TERRAGRUNT_VERSION | Terragrunt版本 | 0.99.1 |
TERRAFORM_DOCS_VERSION | terraform-docs版本 | 0.21.0 |
INFRACOST_VERSION | Infracost版本 | 0.10.43 |
GITHUB_CLI_VERSION | GitHub CLI版本 | 2.86.0 |
AWS_CLI_VERSION | AWS CLI版本 | 1.44.33 |
AZURE_CLI_VERSION | Azure CLI版本 | 2.83.0 |
GCP_CLI_VERSION | GCP SDK版本 | latest |
| 变量 | 描述 | 默认值 |
|---|---|---|
CONFIGFILE | Jinja2配置文件(仅完整版) | config.json |
TERRAFORM_FLAVOR | 版本标识符 | (构建时设置) |
AWS_ACCESS_KEY_ID | AWS凭证 | (从环境传递) |
AWS_SECRET_ACCESS_KEY | AWS凭证 | (从环境传递) |
AWS_DEFAULT_REGION | AWS区域 | (从环境传递) |
AZURE_SUBSCRIPTION_ID | Azure订阅 | (从环境传递) |
AZURE_TENANT_ID | Azure租户 | (从环境传递) |
AZURE_CLIENT_ID | Azure服务主体 | (从环境传递) |
AZURE_CLIENT_SECRET | Azure服务主体 | (从环境传递) |
GOOGLE_APPLICATION_CREDENTIALS | GCP凭证文件路径 | (从环境传递) |
TF_VAR_* | Terraform变量 | (用户定义) |
| 路径 | 用途 | 说明 |
|---|---|---|
/data | Terraform工作目录 | WORKDIR + VOLUME |
/home/terraform/.aws | AWS凭证 | 只读挂载 |
/home/terraform/.azure | Azure凭证 | 只读挂载 |
/home/terraform/.config/gcloud | GCP凭证 | 只读挂载 |
/.terraform.d | Terraform插件/缓存 | 使用tmpfs提高安全性 |
/.config | 工具配置 | 使用tmpfs提高安全性 |
/tmp | 临时文件 | 使用tmpfs提高安全性 |
/sbin/nologin)切勿在docker-compose.yml或Dockerfile中硬编码凭证:
yaml# 错误 - 绝对不要这样做: environment: AWS_ACCESS_KEY_ID: AKIAIOSFODNN7EXAMPLE # 正确 - 使用环境变量: environment: AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID} AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY} # 更好 - 使用只读挂载的凭证文件: volumes: - ~/.aws:/home/terraform/.aws:ro
yamlservices: terraform: image: ***-ghcr.xuanyuan.run/oorabona/terraform:latest user: "1000:1000" # terraform:terraform read_only: true tmpfs: - /.terraform.d - /.config - /tmp cap_drop: - ALL security_opt: - no-new-privileges:true volumes: - .:/data:ro # 仅计划时设为只读 - ~/.aws:/home/terraform/.aws:ro environment: # 从环境变量传递凭证,切勿硬编码 - AWS_ACCESS_KEY_ID - AWS_SECRET_ACCESS_KEY - AWS_DEFAULT_REGION
bash# 应用前扫描安全问题 docker run --rm -v $(pwd):/data ***-ghcr.xuanyuan.run/oorabona/terraform:latest \ trivy config --severity HIGH,CRITICAL . # 扫描常见Terraform错误 docker run --rm -v $(pwd):/data ***-ghcr.xuanyuan.run/oorabona/terraform:latest \ tflint --enable-rule=terraform_deprecated_interpolation # 检查代码中的密钥 docker run --rm -v $(pwd):/data ***-ghcr.xuanyuan.run/oorabona/terraform:latest \ trivy fs --scanners secret .
所有工具版本均已固定,并自动监控更新:
| 依赖项 | 版本 | 来源 | 监控 | 许可证 |
|---|---|---|---|---|
| Terraform | upstream | hashicorp/terraform | Docker Hub | MPL-2.0 |
| TFLint | 0.60.0 | terraform-linters/tflint | GitHub Releases | MPL-2.0 |
| Trivy | 0.69.1 | aquasecurity/trivy | GitHub Releases | Apache-2.0 |
| Terragrunt | 0.99.1 | gruntwork-io/terragrunt | GitHub Releases | MIT |
| terraform-docs | 0.21.0 | terraform-docs/terraform-docs | GitHub Releases | MIT |
| Infracost | 0.10.43 | infracost/infracost | GitHub Releases | Apache-2.0 |
| GitHub CLI | 2.86.0 | cli/cli | GitHub Releases | MIT |
| AWS CLI | 1.44.33 | awscli | PyPI | Apache-2.0 |
| Azure CLI | 2.83.0 | azure-cli | PyPI | MIT |
| Google Cloud SDK | latest | N/A | 未跟踪* | Apache-2.0 |
*Google Cloud SDK安装程序始终获取最新版本 - GCP安装程序不支持版本固定。config.yaml中的GCP_CLI_VERSION仅作参考。
terraform/ ├── Dockerfile # 多阶段、多版本构建 ├── docker-entrypoint.sh # 入口脚本 ├── docker-compose.yml # 示例组合 ├── config.yaml # 工具版本配置 ├── version.sh # 上游版本发现 └── build # 带自动版本检测的构建脚本
Dockerfile使用多
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务