If you use kreuzwerker/docker
as the Terraform Docker provider, you might have seen a similar deprecated attribute warning here below since version 2.13.0.
│ Warning: Deprecated attribute
│
│ on main.tf line 18, in resource "docker_container" "name":
│ 18: image = docker_image.[image_name].latest
terraform {
│
│ The attribute "latest" is deprecated. Refer to the provider documentation for details.
│
│ (and one more similar warning elsewhere)
While both documetations of the provider and Terraform tutorial were still using the latest
attribute in their examples.
resource "docker_container" "name" {
image = docker_image.[image_name].latest
name = "container_name"
ports {
...
}
...
}
It’s bizarre that someone told you that the latest
attribute should not be used any longer, but they also told you the latest
attribute is still the best practice.
Solution
Finally, as version 2.21.0 was released, kreuzwerker/docker
gave us a new attribute as a solution, image_id
.
Official Documents
And you can reference a docker_image
in the way below:
# Start a container
resource "docker_container" "ubuntu" {
name = "foo"
image = docker_image.ubuntu.image_id
}
# Find the latest Ubuntu precise image.
resource "docker_image" "ubuntu" {
name = "ubuntu:precise"
}
So, update your docker provider now, use the new attribute, and hope they won’t change them that easily again.