Docker合成文件不工作:不允许附加属性副本

pgky5nke  于 2022-11-28  发布在  Docker
关注(0)|答案(4)|浏览(332)

Docker版本:17.03.1-ce
尝试让docker-compose.yml从入门教程开始工作。

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

获取此错误:

replicas Additional property replicas is not allowed

我打错了什么?

  • 谢谢-谢谢
    编辑:停靠合成版本1.11.2,构建dfed245
yjghlzjz

yjghlzjz1#

缩进在docker-compose.yml中非常重要。按照您的设置,"deploy"是一个服务,而不是一个服务。deploy部分用于指定有关"web"服务应如何部署的信息。下面的代码允许docker-compose updocker stack deploy web --compose-file docker-compose.yml为我成功运行:

version: "3"

services:
  web:
    image: tuhina/friendlyhello:2.0
    deploy:
      replicas: 5
      resources:
        limits:
          cpus: "0.1"
          memory: '50M'
      restart_policy:
        condition: on-failure
    ports:
      - "80:80"
    networks:
      - webnet

networks:
  webnet:
xn1cxnb4

xn1cxnb42#

这发生在我身上,因为我使用的是docker-compose版本2,而我的docker-compose.yml文件是版本1的。
我的docker-compose.yml文件最初是这样的:

web:
    image: nginx
    restart: always

因此,当我运行docker-compose up时,我得到了以下错误:

(root) Additional property web is not allowed

我降级到docker-compose版本1,如下所示:

docker-compose disable-v2

现在它可以工作了。为了让它在v2上工作,我首先启用了v2:

docker-compose enable-v2

然后我更新了我的docker-compose.yml,如下所示,因为docker-composev 2,web不能是顶部/最外面的值。

services:
  web:
    image: nginx
    restart: always

我检查了我正在使用的docker-compose的版本:

docker-compose --version

我发现我运行的是版本v2.2.3,在升级之前它一直是1.29.2
现在docker-compose是docker本身的一部分。试试下面的命令:

docker compose version
qni6mghb

qni6mghb3#

我也有同样的问题:当我创建一个“docker-compose.yml”,我只想运行一个简单nginx容器进行测试时,它说:
(root)不允许附加属性mycont
下面是我在docker-compose.yml中输入内容:
我的联系人1:

image: nginx:latest
nr7wwzry

nr7wwzry4#

对于偶然发现这个问题的人;请仔细检查属性名称。
我使用了enviroment而不是environment

相关问题