Проблема с Terraform на macOS

Я начал изучать terraform, я установил terraform и рабочий стол docker на свой macbook. Я следую руководству по быстрому запуску и получаю ошибку ниже.

ОШИБКА

      ╷
│ Error: Error pinging Docker server: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
│
│   with provider["registry.terraform.io/kreuzwerker/docker"],
│   on main.tf line 10, in provider "docker":
│   10: provider "docker" {}
│

Статус докера

          ❯ docker --version
    Docker version 20.10.20, build 9fdeb9c
    ❯ docker ps
    CONTAINER ID   IMAGE                    COMMAND                  CREATED         STATUS         PORTS                NAMES
    f6633f3b801e   docker/getting-started   "/docker-entrypoint.…"   2 minutes ago   Up 2 minutes   0.0.0.0:80->80/tcp   flamboyant_volhard

main.tf

          terraform {
      required_providers {
        docker = {
          source  = "kreuzwerker/docker"
          version = "~> 2.13.0"
        }
      }
    }
    
    provider "docker" {}
    
    resource "docker_image" "nginx" {
      name         = "nginx:latest"
      keep_locally = false
    }
    
    resource "docker_container" "nginx" {
      image = docker_image.nginx.latest
      name  = "tutorial"
      ports {
        internal = 80
        external = 8000
      }
    }

Проблема решена, решение доступно по этой ссылке

1 ответ

Основываясь на документации провайдера [1] (как и описывает ошибка), вам нужно переключиться на следующее:

      terraform {
   required_providers {
     docker = {
       source  = "kreuzwerker/docker"
       version = "~> 2.22.0"
      }
    }
}
    
provider "docker" {}

resource "docker_container" "nginx" {
  image = docker_image.nginx.image_id
  name  = "tutorial"
  ports {
    internal = 80
    external = 8000
  }
}

resource "docker_image" "nginx" {
  name         = "nginx:latest"
  keep_locally = false
}

В примере из руководства используется очень старая версия провайдера Docker. Когда вы вносите эти изменения, обязательно запуститеterraform init -upgradeперед запускомterraform planилиterraform apply.


[1] https://registry.terraform.io/providers/kreuzwerker/docker/latest/docs/resources/container#example-usage

Другие вопросы по тегам