Skip navigation

おこじょめもらんど

TerraformのDocker ProviderサンプルをM1 MacのRancher Desktopで動かす

TerraformのDocker ProviderサンプルをM1 MacのRancher Desktopで動かす

Created At
terraform
iac terraform

結論としてはこちらのリポジトリにすべて書いてます。

最近Terraformを使ってみようと思いたち、まずはこちらのチュートリアル通りに進めていったのだけど、下記エラーが発生しました。

Error pinging Docker server: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running

まぁエラー内容そのままの通りなので、それならばということでdocker context lsでsocketを確認してterraformで設定記載して終わりです。

普段はRancher Desktopを使ってM1 Mac上でDockerを使っていますので、RancherのDocker socketを設定してあげます(バージョンは1.8.1でした)。

ちなみに自分の環境だと下記の通りの出力でした。

NAME                DESCRIPTION                               DOCKER ENDPOINT                       ERROR
default             Current DOCKER_HOST based configuration   unix:///var/run/docker.sock
rancher-desktop *   Rancher Desktop moby context              unix:///Users/XXXX/.rd/docker.sock

下記みたいな感じで、defaultの入力値としてunix:///var/run/docker.sockがdocker sockを変数として入力できるようにしてあげて、

variable "docker_sock" {
  type        = string
  description = "Apply when Docker socket path is not default"
  default = "unix:///var/run/docker.sock"
}

provider "docker" {
  host = var.docker_sock
}

下記みたいな感じで使用できます。

DOCKER_SOCK="docker_sock=unix:///Users/$USER/.rd/docker.sock"
terraform plan -var=$DOCKER_SOCK
terraform apply -var=$DOCKER_SOCK
terraform destroy -var=$DOCKER_SOCK

以上