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

前端之家收集整理的这篇文章主要介绍了Docker撰写错误“在文件’./docker-compose.yml’中,服务’punjab’必须是映射而不是字符串.”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

我为stack punjab连接管理器,ejabberd和mysql准备了一个docker-compose文件.

下面是docker-compose.yml文件

  1. version: '2'
  2. services:
  3. punjab:
  4. image:punjab
  5. ports
  6. - 5280:5280
  7. links
  8. - ejabbberd:ejabberd
  9. ejabberd:
  10. image: ejabberd
  11. depends-on:
  12. - MysqL
  13. links:
  14. - MysqL:MysqL
  15. MysqL:
  16. image:MysqL

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

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

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

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

他们是:

>使用depends_on而不是依赖,因为这是正确的语法.
>为了获得最佳实践,请在通知图像之前使用空格,如:image:punjab.
>在旁遮普服务的端口和链接上,你忘了冒号:
> Docker Hub上不存在图像ejabberd和punjab,因此它们必须存在于您的本地存储库中.

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

  1. version: '2'
  2. services:
  3. punjab:
  4. image: punjab
  5. ports:
  6. - "5280:5280"
  7. links:
  8. - ejabberd
  9. ejabberd:
  10. image: ejabberd
  11. depends_on:
  12. - MysqL
  13. links:
  14. - MysqL
  15. MysqL:
  16. image: MysqL

猜你在找的Docker相关文章