Docker 撰写错误 "In file './docker-compose.yml', service 'punjab' must be a mapping not a string."
Docker compose error "In file './docker-compose.yml', service 'punjab' must be a mapping not a string."
我的 docker-compose.yml 文件中出现奇怪的错误。
我已经为 stack punjab 连接管理器、ejabberd 和 mysql.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 从命令行和我有 docker-compose.yml 文件的同一目录时,我得到以下错误。
错误:在文件 './docker-compose.yml' 中,服务 'punjab' 必须是映射而不是字符串。
我也使用 yamllint 解析了 yml 文件,文件格式正确。
虽然理论上文件格式可能看起来是正确的,但有些地方是错误的。
他们是:
使用 depends_on
而不是 depends-on
因为这是正确的语法。
为了最佳实践,在通知图像之前使用空格 space,例如: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
我的 docker-compose.yml 文件中出现奇怪的错误。
我已经为 stack punjab 连接管理器、ejabberd 和 mysql.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 从命令行和我有 docker-compose.yml 文件的同一目录时,我得到以下错误。
错误:在文件 './docker-compose.yml' 中,服务 'punjab' 必须是映射而不是字符串。
我也使用 yamllint 解析了 yml 文件,文件格式正确。
虽然理论上文件格式可能看起来是正确的,但有些地方是错误的。
他们是:
使用
depends_on
而不是depends-on
因为这是正确的语法。为了最佳实践,在通知图像之前使用空格 space,例如:
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