错误:在文件';中/docker compose.yml';,服务';卷';必须是映射而不是数组

错误:在文件';中/docker compose.yml';,服务';卷';必须是映射而不是数组,docker,docker-compose,docker-registry,Docker,Docker Compose,Docker Registry,我的docker-compose.yml如下所示,我正在尝试按照docker注册表文档中的compose文件进行操作。当我运行docker compose up时,我得到以下错误 错误:在文件“./docker compose.yml”中,服务“卷”必须是 映射不是数组 我的docker版本是 Docker版本1.12.1,内部版本23cf638 docker撰写版本是 docker compose版本1.7.1,内部版本0a9ab35 在Ubuntu 16.04上运行 编辑: 也试过 regi

我的docker-compose.yml如下所示,我正在尝试按照docker注册表文档中的compose文件进行操作。当我运行docker compose up时,我得到以下错误

错误:在文件“./docker compose.yml”中,服务“卷”必须是 映射不是数组

我的docker版本是

Docker版本1.12.1,内部版本23cf638

docker撰写版本是

docker compose版本1.7.1,内部版本0a9ab35

在Ubuntu 16.04上运行

编辑:

也试过

registry:
  restart: always
  image: sudarshan/registry
  ports:
    - 5000:5000
environment:
  REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt
  REGISTRY_HTTP_TLS_KEY: /certs/domain.key
  REGISTRY_AUTH: silly
  REGISTRY_AUTH_SILLY_SERVICE: SILLY_SERVICE
  REGISTRY_AUTH_SILLY_REALM: SILLY_REALM
volumes:
    - /usr/certs:/certs

问题是您没有正确地缩进字段。您的docker compose应该如下所示:

registry:
  restart: always
  image: sudarshan/registry
  ports:
    - 5000:5000
  environment:
    REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt
    REGISTRY_HTTP_TLS_KEY: /certs/domain.key
    REGISTRY_AUTH: silly
    REGISTRY_AUTH_SILLY_SERVICE: SILLY_SERVICE
    REGISTRY_AUTH_SILLY_REALM: SILLY_REALM
  volumes:
    - /usr/certs:/certs

我认为你必须做到:

version: '3'
services:
  web:
    stdin_open: true
    environment:
      - CHOKIDAR_USEPOLLING=true
    build:
      context: .
      dockerfile: Dockerfile.dev
    ports:
      - '3000:3000'
    volumes:
      - /app/node_modules
      - .:/app

在“-/usr/certs:/certs”之前添加两个空格不-我刚刚尝试过。请确保您在“冒号”(and)的两侧都提供了目录名,而不是文件最重要的是:服务:web:environment:-CHOKIDAR\u USEPOLLING=true
version: '3'
services:
  web:
    stdin_open: true
    environment:
      - CHOKIDAR_USEPOLLING=true
    build:
      context: .
      dockerfile: Dockerfile.dev
    ports:
      - '3000:3000'
    volumes:
      - /app/node_modules
      - .:/app