我的docker-compose.yml文件中出现了一个奇怪的错误。
我为stack punjab连接管理器,ejabberd和mysql准备了一个docker-compose文件。
以下是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.yml文件的同一目录运行命令docker-compose时,我收到以下错误。
错误:在文件' ./ docker-compose.yml'中,服务'旁遮普'必须是映射而不是字符串。
我也使用yamllint解析了yml文件,并且文件格式正确。
答案 0 :(得分:10)
虽然理论上文件格式看起来可能正确,但有些事情是错误的。
他们是:
使用depends_on
代替depends-on
,因为这是正确的语法。
为了获得最佳效果,请在通知图片之前使用空格,如:image: punjab
。
在旁遮普服务的ports
和links
,您忘记冒号:
Docker Hub上不存在图像ejabberd
和punjab
,因此它们必须存在于您的本地存储库中。
这是使用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