docker组成错误“在文件”./docker-compose.yml“,服务'旁遮普'必须是一个映射不是一个string。
我在我的docker-compose.yml文件中遇到了一个奇怪的错误。
我准备了堆栈旁遮普连接pipe理器,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'中,服务'punjab'必须是映射而不是string。
我使用yamllintparsing了yml文件,并且文件格式正确。
虽然理论上文件格式可能看起来是正确的,但也有一些是错误的。
他们是:
-
使用
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