Docker撰写错误"在文件'./docker-compose.yml'中,服务'punjab'必须是映射而不是字符串."

Vai*_*ani 6 xmpp ejabberd punjab docker docker-compose

我的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
Run Code Online (Sandbox Code Playgroud)

当我从命令行和我有docker-compose.yml文件的同一目录运行命令docker-compose时,我收到以下错误.

错误:在文件'./docker-compose.yml'中,服务'punjab'必须是映射而不是字符串.

我也使用yamllint解析了yml文件,并且文件格式正确.

小智 11

虽然理论上文件格式看起来可能正确,但有些事情是错误的.

他们是:

  1. 使用depends_on而不是depends-on因为这是正确的语法.

  2. 为了获得最佳实践,请在通知图像之前使用空格,如:image: punjab.

  3. portslinks在旁遮普邦的服务,你忘了冒号:

  4. 这些图像ejabberdpunjab不上泊坞枢纽存在,因此他们必须在本地资源库存在.

这是一个使用a的示例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
Run Code Online (Sandbox Code Playgroud)