Ошибка создания Docker "В файле./docker-compose.yml" служба "Пенджаб" должна быть отображением, а не строкой ".

Я получаю странную ошибку в моем файле docker-compose.yml.

Я подготовил файл docker-compose для менеджера соединений стека пенджаба, ejabberd и mysql.

Ниже находится файл docker-compose.yml

version: '2'
services:
  punjab:
    image:punjab
    ports
     - 5280:5280
    links
     - ejabbberd:ejabberd
  ejabberd:
    image: ejabberd
    depends-on:
      - mysql
    links:
      - mysql:mysql
  mysql:
    image:mysql

Когда я запускаю команду docker-compose из командной строки и из того же каталога, где у меня есть файл docker-compose.yml, я получаю следующую ошибку.

ОШИБКА: В файле './docker-compose.yml' служба 'Пенджаб' должна быть отображением, а не строкой.

Я проанализировал файл yml, используя yamllint, и файл правильно отформатирован.

1 ответ

Решение

Хотя теоретически формат файла может выглядеть правильно, есть некоторые вещи, которые не так.

Они есть:

  1. использование depends_on вместо depends-on потому что это правильный синтаксис.

  2. Для лучшей практики, используйте пустое пространство, прежде чем сообщать изображение, как: image: punjab,

  3. На ports а также links на пенджабе вы забываете толстую кишку :

  4. Изображения ejabberd а также punjab не существует в Docker Hub, поэтому они должны существовать в вашем локальном хранилище.

Это пример использования docker-compose.yml:

version: '2'
services:
  punjab:
    image: punjab
    ports:
      - "5280:5280"
    links:
      - ejabberd

  ejabberd:
    image: ejabberd
    depends_on:
      - mysql
    links:
      - mysql

  mysql:
    image: mysql
Другие вопросы по тегам