While following Install Terraform | Terraform | HashiCorp Developer
I get this error on running terraform apply
on Windows 11:
Error: Unsupported attribute
│
│ on main.tf line 20, in resource "docker_container" "nginx":
│ 20: image = docker_image.nginx.latest
│
│ This object has no argument, nested block, or exported attribute named "latest".
I’m guessing it should be image_id
instead of latest: Terraform Registry
Alternatively maybe name
?
Thanks @stuart-c
Sorry, I am a newbie here. Can you please suggest what specific change should be made in the following:
terraform {
required_providers {
docker = {
source = "kreuzwerker/docker"
version = ">= 2.13.0"
}
}
}
provider "docker" {
host = "npipe:////.//pipe//docker_engine"
}
resource "docker_image" "nginx" {
name = "nginx:latest"
keep_locally = false
}
resource "docker_container" "nginx" {
image = docker_image.nginx.latest
name = "tutorial"
ports {
internal = 80
external = 8000
}
}
maxb
January 29, 2023, 9:44am
4
The tutorial appears to have been written for kreuzwerker/docker version 2 - however version 3 is now released and is not fully compatible.
The simplest option would be to change the version range you are specifying for kreuzwerker/docker to pin to major version 2, for now:
version = "~> 2.0"
or you could look up the kreuzwerker/docker v2 to v3 migration guide and work through it.
1 Like
Thanks @maxb - that helps
resource “docker_container” “nginx” {
image = docker_image.nginx.repo_digest
name = “tutorial”
ports {
internal = 80
external = 8000
}
}
Should work
1 Like
For those that wind up here like me, ensure your Docker Desktop is set to using Linux containers, not Windows.