terraform - монтирование директории в yaml - PullRequest
0 голосов
/ 25 октября 2019

Я управляю экземплярами на облачной платформе Google и внедряю образ докера в GCP с помощью скрипта terraform. Проблема, с которой я сталкиваюсь сейчас со скриптом Terraform, заключается в монтировании каталога хоста в контейнер докера при запуске образа докера.

Если я могу вручную запустить команду докера, я могу сделать что-то вроде этого.

docker run -v <host_dir>:<container_local_path> -it <image_id>

Но мне нужно настроить каталог монтирования в Terraform Yaml. Это мой YAML-файл Terraform.

spec:
  containers:
    - name: MyDocker
      image: "docker_image_name"
      ports:
        - containerPort: 80
          hostPort: 80

У меня есть каталог (/ www / project / data) на хост-компьютере. Этот каталог должен быть смонтирован в Docker-контейнер.

Кто-нибудь знает, как смонтировать этот каталог в этот файл yaml?

Или любой обходной путь приветствуется.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 25 октября 2019

Я нашел ответ. убедитесь, что имя «dataDir» должно совпадать между «volumeMounts и volume».

      volumeMounts:
       - name: 'dataDir'
         mountPath: '/data/'
  volumes:
  - name: 'dataDir'
    hostPath:
      path: '/tmp/logs'
0 голосов
/ 25 октября 2019

Я предполагаю, что вы загружаете образы Docker в Compute Engine, основанный на контейнерах. Я рекомендую определить ваш рецепт создания образа GCE и монтирования диска вручную с помощью консоли GCP. Ниже приведено руководство по выполнению этой задачи.

https://cloud.google.com/compute/docs/containers/configuring-options-to-run-containers#mounting_a_host_directory_as_a_data_volume

Как только вы сможете достичь желаемой среды GCP вручную, появится рецепт для перевода этого в скрипт Terraform. как документировано здесь:

https://github.com/terraform-providers/terraform-provider-google/issues/1022

Рецепт высокого уровня, кажется, признает, что конфигурация команд докера и спецификация находятся в Метаданных конфигурации Compute Engine. Мы можем найти нужные метаданные, выполнив команду вручную и посмотрев на запрос REST, который бы этого достиг. Как только мы узнаем метаданные, мы можем записать их в эквивалентные настройки в скрипте terraform, которые будут добавлены Terraform.

...