As you know. kafka is depends on zookeeper. I want to config zk port for kafka.
zk
terraform {
required_providers {
docker = {
source = "kreuzwerker/docker"
}
}
}
resource "docker_image" "zookeeper" {
name = "ubuntu/zookeeper:latest"
}
resource "docker_container" "zookeeper" {
image = docker_image.zookeeper.name
name = "zookeeper_test"
ports {
internal = 2181
external = 12181
}
}
kafka
terraform {
required_providers {
docker = {
source = "kreuzwerker/docker"
}
}
}
resource "docker_image" "kafka" {
name = "ubuntu/kafka:latest"
}
resource "docker_container" "kafka" {
image = docker_image.kafka.name
name = "kafka_test"
// Maybe this field "command" to use, but it's not work.
command = [
"-e", "ZOOKEEPER_PORT=12181"
]
ports {
internal = 9092
external = 19092
}
}
You should use env option. Additionally, in order to tell terraform that the Kafka container depends on the Zookeeper, you have to use implicit dependency to make sure one is created before the other: