Ошибка создания 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 ответ
Хотя теоретически формат файла может выглядеть правильно, есть некоторые вещи, которые не так.
Они есть:
использование
depends_on
вместоdepends-on
потому что это правильный синтаксис.Для лучшей практики, используйте пустое пространство, прежде чем сообщать изображение, как:
image: punjab
,На
ports
а такжеlinks
на пенджабе вы забываете толстую кишку:
Изображения
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