You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform部署Nginx容器报错:Unsupported attribute 'latest'求助

问题解决:Terraform docker_container 引用 docker_image 时出现Unsupported attribute错误

错误原因

你遇到的错误是因为错误引用了docker_image.nginx资源不存在的latest属性。kreuzwerker/docker(版本3.0.2)的docker_image资源并没有导出名为latest的属性,因此Terraform无法识别这个字段。

修复方案

将docker_container资源中的image字段修改为引用docker_image.nginx的image_id或name属性即可:

修改后的完整代码

terraform {
  required_providers {
    docker = {
      source  = "kreuzwerker/docker"
      version = "3.0.2"
    }
  }
}

provider "docker" {
    host = "tcp://${var.ssh_host}:2375"
}

resource "docker_image" "nginx" {
  name = "nginx:latest"
}

resource "docker_container" "nginx" {
  # 使用镜像ID引用(推荐,确保指向正确镜像)
  image = docker_image.nginx.image_id
  name  = "enginecks"
  ports {
    internal = 80
    external = 80
  }
}

也可以选择直接引用镜像名称:

image = docker_image.nginx.name

补充说明

  • image_id是镜像的唯一标识符,使用它可以确保容器拉取和使用的是你通过docker_image资源指定的镜像,避免版本歧义。
  • name就是你在docker_image中定义的nginx:latest,直接使用也能正常工作。
  • 另外需要确认var.ssh_host变量已经在你的Terraform配置中定义并赋值,否则后续执行可能会出现变量未定义的错误。

内容的提问来源于stack exchange,提问作者Kevin Gelasse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 07:02:13