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
相关产品推荐
相关产品推荐

