Почему я не могу использовать изображение 5.7 или 5.6 mysql docker вместо mysql 8 с terraform в windows? - PullRequest
0 голосов
/ 01 августа 2020

Я тестирую mysql_database внутри docker_container.mysql, используя terraform в windows, но каждый раз, когда я пытаюсь использовать изображение, отличное от mysql:8 внутри docker_image.mysql, используемого docker_container.mysql, terraform занимает 5 минут на создание ресурса mysql_database и выдает следующую ошибку:

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.

  on main.tf line 33, in resource "mysql_database" "test":
  33: resource "mysql_database" "test" {

А вот 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]
}

Я тестирую теги изображений mysql, показанные на https://hub.docker.com/_/mysql, в частности 5.6, 5.7 и 8, но только с использованием mysql: 8, похоже, работает. Есть ли другой способ, которым я должен ссылаться на эти mysql теги изображений?

1 Ответ

1 голос
/ 02 августа 2020

Я попытался проверить проблему и обнаружил ту же ошибку, что и ваша, только для mysql 5.7 и 5.6, когда вы оставите те же volumes.

После удаления следующий раздел из скрипта terraform

   volumes {
     volume_name    = "mysql-vol"
    container_path = "/var/lib/mysql"
   }

и удаление существующих mysql docker изображений, mysql 5.6, mysql 5.7 и 8 работали должным образом.

Кстати, ошибка, приводящая к неудачному соединению, была:

ERROR 2013 (HY000): Lost connection to MySQL server at 'handshake: reading initial communication packet', system error: 11
...