Я тестирую ресурс mysql_database
внутри ресурса docker_container.mysql
в windows, и после выполнения terraform destroy
ранее созданный ресурс mysql_database
не уничтожается (по-прежнему terraform show
s в terrafrom.tfstate
), вероятно, потому что я не сказал terraform в main.tf
, что mysql_database
depends_on
ресурс docker_container.mysql
Я уже добавил отношение depends_on
, но terraform destroy
все равно не работает и продолжает говорить
Error: Could not connect to server: dial tcp 127.0.0.1:3306: connectex: No connection could be made because the target machine actively refused it.
Вот main.tf
:
provider "docker" {
host = "npipe:////.//pipe//docker_engine"
}
resource "docker_image" "mysql" {
name = "mysql:8"
//keep_locally = true
}
resource "docker_container" "mysql" {
name = "mysql"
image = docker_image.mysql.latest
restart = "always"
env = [
"MYSQL_ROOT_PASSWORD=root"
]
volumes {
volume_name = "mysql-vol"
container_path = "/var/lib/mysql"
}
ports {
internal = 3306
external = 3306
}
}
provider "mysql" {
endpoint = "127.0.0.1:3306"
username = "root"
password = "root"
}
resource "mysql_database" "test" {
name = "test"
depends_on = [docker_container.mysql]
}
А вот terraform.tfstate
:
{
"version": 4,
"terraform_version": "0.12.29",
"serial": 37,
"lineage": "5f98996b-87be-947a-39fa-7cdc060fac79",
"outputs": {},
"resources": [
{
"mode": "managed",
"type": "mysql_database",
"name": "test",
"provider": "provider.mysql",
"instances": [
{
"schema_version": 0,
"attributes": {
"default_character_set": "utf8",
"default_collation": "utf8_general_ci",
"id": "test",
"name": "test"
}
}
]
}
]
}
Какое правильное / безопасное действие следует делать в такие случаи? Стоит ли просто вручную удалить ресурс mysql_database
из terraform.tfstate
?