Мне нужно было пользовательское изображение centos с установленным докером.Поэтому я создал его с помощью изображения centos и пометил его как пользовательский (см. Ниже).
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
centos custom 84766562f881 4 hours ago 664MB
centos/systemd latest 05d3c1e2d0c1 7 weeks ago 202MB
Я пытаюсь развернуть несколько контейнеров, используя Terraform, на моем локальном компьютере, каждыйс уникальным именем, которое приходит из другого файла.Образы докера находятся на локальной машине.Вот код TF.
$ cat main.tf
provider "docker" {
}
resource "docker_image" "centos" {
name = "centos:custom"
}
resource "docker_container" "app_swarm" {
image = "${docker_image.centos.custom}"
count = "${length(var.docker_cont)}"
name = "${element(var.docker_cont, count.index)}"
}
Когда я запускаю terraform apply, я получаю эту ошибку, которую я не уверен, как исправить.Может кто-нибудь указать мне правильное направление, пожалуйста?
Error: Error running plan: 1 error(s) occurred:
* docker_container.app_swarm: 3 error(s) occurred:
* docker_container.app_swarm[0]: Resource 'docker_image.centos' does not have attribute 'custom' for variable 'docker_image.centos.custom'
* docker_container.app_swarm[1]: Resource 'docker_image.centos' does not have attribute 'custom' for variable 'docker_image.centos.custom'
* docker_container.app_swarm[2]: Resource 'docker_image.centos' does not have attribute 'custom' for variable 'docker_image.centos.custom'
Да, другой файл существует с именами, это простой список.
РЕДАКТИРОВАТЬ:
Спасибо Дэвид,попробовал ваше предложение и изменил код так:
provider "docker" {
}
resource "docker_image" "centos" {
name = "centos:custom"
}
resource "docker_container" "app_swarm" {
image = "${docker_image.centos.latest}"
count = "${length(var.docker_cont)}"
name = "${element(var.docker_cont, count.index)}"
}
Но теперь я получаю эту ошибку.
Error: Error applying plan:
1 error(s) occurred:
* docker_image.centos: 1 error(s) occurred:
* docker_image.centos: Unable to read Docker image into resource: Unable to pull image centos:custom: error pulling image centos:custom: Error response from daemon: manifest for centos:custom not found
Я думаю, мне нужно будет настроить локальный репозиторий Docker, чтобы получитьработает, но я не уверен?