码头工人撰写错误"In file './docker-compose.yml', service 'punjab' must be a mapping not a string."



我的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 文件,并且该文件的格式正确。

尽管理论上文件格式看起来正确,但有些地方是错误的。

它们是:

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

  2. 最佳做法是,请在通知映像之前使用空格,例如:image: punjab

  3. 在旁遮普礼拜的portslinks,你忘记了冒号:

  4. 映像ejabberdpunjab在 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

相关内容

最新更新