我的docker-compose.yml文件中出现一个奇怪的错误。
我已经为堆栈旁遮普连接管理器,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 up 时,出现以下错误。
错误:在文件"./docker-compose.yml"中,服务"旁遮普"必须是映射而不是字符串。
我也使用 yamllint 解析了 yml 文件,并且该文件的格式正确。
尽管理论上文件格式看起来正确,但有些地方是错误的。
它们是:
-
使用
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