问题描述
terraform Apply的首次运行显示“错误:无法启动容器:来自守护程序的错误响应:未找到网络疫苗网”
第二次运行:一切正常。
我认为terraform自己管理依赖项-显然这里失败了。我的档案有误吗?或者我可以自己建立依赖关系?
.tf文件:
# Setting up docker network
resource "docker_network" "private_network" {
name = "vaccine-net"
attachable = true
ipam_config {
subnet = "10.0.1.0/24"
gateway = "10.0.1.254"
}
}
# create db container
resource "docker_container" "bootstrapper" {
name = "bootstrapper"
image = "vaccine/bootstrapper"
networks_advanced {
name = "vaccine-net"
ipv4_address ="10.0.1.1"
}
}
解决方法
您确定您的网络是在创建容器之前创建的吗?我看不到您的网络和容器之间的链接。尝试参考Docker网络(首选):
# Setting up docker network
resource "docker_network" "private_network" {
name = "vaccine-net"
attachable = true
ipam_config {
subnet = "10.0.1.0/24"
gateway = "10.0.1.254"
}
}
# create db container
resource "docker_container" "bootstrapper" {
name = "bootstrapper"
image = "vaccine/bootstrapper"
networks_advanced {
name = "${docker_network.private_network.name}"
ipv4_address ="10.0.1.1"
}
}
或显式使用depends_on
:
# Setting up docker network
resource "docker_network" "private_network" {
name = "vaccine-net"
attachable = true
ipam_config {
subnet = "10.0.1.0/24"
gateway = "10.0.1.254"
}
}
# create db container
resource "docker_container" "bootstrapper" {
name = "bootstrapper"
image = "vaccine/bootstrapper"
networks_advanced {
name = "vaccine-net"
ipv4_address ="10.0.1.1"
}
depends_on = [docker_network.private_network]
}