Проблема с 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
.