docker compose file not working:replicas不允许使用其他属性副本

Tuh*_*ngh 20 docker docker-compose

泊坞版: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:
Run Code Online (Sandbox Code Playgroud)

得到此错误:

replicas Additional property replicas is not allowed
Run Code Online (Sandbox Code Playgroud)

我输错了什么?

谢谢.

编辑:docker-compose版本1.11.2,build dfed245

bur*_*ttk 45

缩进在docker-compose.yml中至关重要.你设置它的方式,"部署"是一项服务,这是不打算的.部署部分旨在指定有关如何部署"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:
Run Code Online (Sandbox Code Playgroud)


Gil*_*oot 29

这发生在我身上,因为我使用的是 docker-compose 版本 2,但我的 docker-compose.yml 文件适用于版本 1。

我的 docker-compose.yml 文件最初是这样的:

web:
    image: nginx
    restart: always 
Run Code Online (Sandbox Code Playgroud)

所以当我运行时docker-compose up,我收到此错误:

(root) Additional property web is not allowed
Run Code Online (Sandbox Code Playgroud)

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

docker-compose disable-v2
Run Code Online (Sandbox Code Playgroud)

现在它起作用了。为了让它适用于 v2,首先我启用了 v2:

docker-compose enable-v2
Run Code Online (Sandbox Code Playgroud)

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

services:
  web:
    image: nginx
    restart: always 
Run Code Online (Sandbox Code Playgroud)

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

docker-compose --version
Run Code Online (Sandbox Code Playgroud)

我发现我运行的版本是v2.2.3升级之前的版本 1.29.2

如今,docker-compose 已成为 docker 本身的一部分。尝试以下命令:

docker compose version
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,这个答案我已经参考过很多次了 (2认同)

Maa*_*ten 9

对于那些偶然发现这个问题的人;仔细检查属性名称。

我用enviroment而不是environment