首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker撰写错误"In file './docker-compose.yml',service 'punjab‘必须是映射而不是字符串。“

Docker撰写错误"In file './docker-compose.yml',service 'punjab‘必须是映射而不是字符串。“
EN

Stack Overflow用户
提问于 2016-06-04 15:56:38
回答 1查看 30.7K关注 0票数 8

我的docker-come.yml文件中出现了一个奇怪的错误。

我已经为堆栈旁遮普连接管理器ejabberd和mysql准备了一个坞-撰写文件。

下面是docker-compose.yml文件

代码语言:javascript
复制
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-组合时,我会得到以下错误。

错误:在文件‘./docker-come.yml’中,服务“punjab”必须是映射而不是字符串.

我也使用yamllint解析了yml文件,并正确格式化了该文件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-04 16:46:45

虽然理论上文件格式看起来可能是正确的,但也有一些地方是错误的。

它们是:

  1. 使用depends_on而不是depends-on,因为这是正确的语法。
  2. 为了获得最佳实践,在通知图像(如:image: punjab )之前,使用一个空格。
  3. 在旁遮普省的portslinks上,您忘记了冒号:
  4. Docker上不存在映像ejabberdpunjab,因此它们必须存在于本地存储库中。

这是一个使用docker-compose.yml的示例

代码语言:javascript
复制
version: '2'
services:
  punjab:
    image: punjab
    ports:
      - "5280:5280"
    links:
      - ejabberd

  ejabberd:
    image: ejabberd
    depends_on:
      - mysql
    links:
      - mysql

  mysql:
    image: mysql
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37632244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档