运行撰写yml文件docker-compose.yml的Docker堆栈部署命令错误

时间:2018-09-25 03:46:36

标签: docker docker-compose yaml docker-swarm

[root@d1 docker]# docker stack deploy -c docker-compose.yml getstartedlab
yaml: line 12: did not find expected key
  

这是我正在使用的docker yml文件,请参见下面列出的docker-compose.yml文件

version: "3"
services:
   web:
      image: pragneshpanchal/httpdsrv
      deploy:
        replicas: 5
        resources:
           limits:
              cpus: "0.1"
              memory: 50M
           restart_policy:
              condition:on-failure
          ports:
             - "4000:80"
          networks:
              - webnet
        networks:
          webnet:

2 个答案:

答案 0 :(得分:0)

您缺少condition:on-failure之间的空格。请添加一个空格,看看是否可行。

答案 1 :(得分:0)

您是否通过Yaml验证程序输入了Yaml?

它对于缩进非常敏感,因此,如果在某个位置放置太多的空间,即使有有效的东西,也会有一些奇怪的行为。

我试图将您的文件通过此验证器(http://www.yamllint.com/)传送,并在其中粘贴/粘贴时出错。处理子项时,请尝试尊重2个空格,例如:

services:
  web:
    image: pragneshpanchal/httpdsrv

目前,我可以看到多种类型的间距,这将总是使您出错。就像在端口和第一个网络呼叫中一样。

对于第二个网络呼叫,它应与服务处于同一级别。

最后,如Mark answer所述,重新启动条件中缺少空间。