Error following quick starter guide on Windows 11

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
  }
}

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.