docker-compose.yaml не будет анализировать - PullRequest
1 голос
/ 05 апреля 2019

У меня проблемы с запуском моего docker-compose.yml. Я получил готовый файл docker-compose со страницы github и настроил его под свои нужды. При попытке разобрать его выдает ошибки.

Я не очень хорошо разбираюсь в синтаксисе yaml, поэтому мне сложно понять, откуда возникла ошибка.

Код из файла docker-compose.yml размещен на этой вставке: https://pastebin.com/XjM2S11i

При разборе возвращаются следующие ошибки:

ERROR:

while parsing a block mapping
  in "<unicode string>", line 5, column 1:
    version: "3.6"
    ^
expected <block end>, but found '<block mapping start>'
  in "<unicode string>", line 149, column 3:
      watchtower:
      ^

Может кто-нибудь помочь мне исправить синтаксис / отступ? Буду очень признателен.

Ответы [ 2 ]

3 голосов
/ 05 апреля 2019

В вашем файле (строка 115):

phpmyadmin:
    hostname: phpmyadmin

Таким образом, значение для ключа phpmyadmin вашего корневого уровня сопоставления является самим сопоставлением, которое начинается с ключа hostname с отступом четырех позиций.

Тогда в строке 149 вы получите:

  watchtower:
    container_name: watchtower

который имеет только два отступа. Вам нужно решить, что является родительским узлом watchtower: либо он является ключом для сопоставления корневого уровня, а затем он должен быть сброшен влево, либо это ключ в том же сопоставлении, что hostname является ключом и затем нужно выделить четыре позиции. Или что должен быть ключ, вставленный в отображение корневого уровня до watchtower.

Я настоятельно рекомендую всегда использовать число две позиции для отступа как для значений отображения, так и для элементов последовательности (а это означает, что нет смещение для индикатора элемента последовательности):

a:
  b:
  - 1
  - 2

Ваш YAML-файл, создаваемый в Docker-модуле, представляет собой сборку с отступом не менее 2 и 4 позиций для отображений и отступами 2, 3 и 4 позиций для элементов последовательности.

Этот докер-композитор не жаловался:

ports:
 - "80:80"
  - "443:443"

в вашем файле пока что неожиданно, так как не действительный YAML.

0 голосов
/ 05 апреля 2019

'Lint' (проверка синтаксиса) docker-compose.yml, используя что-то http://www.yamllint.com/,, исправьте синтаксические ошибки, затем повторно запустите команду Docker.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...