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

Sud*_*han 33 docker docker-registry docker-compose

我的搬运工,compose.yml看起来像下面,我试图按照从泊坞窗注册表文件撰写的文件在这里.当我运行docker-compose时,我得到以下错误.

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

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
Run Code Online (Sandbox Code Playgroud)

我的码头版本是

Docker版本1.12.1,build 23cf638

docker-compose版本是

docker-compose版本1.7.1,build 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
Run Code Online (Sandbox Code Playgroud)

Jes*_*oco 43

问题是你没有正确缩进字段.您的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
Run Code Online (Sandbox Code Playgroud)


mis*_*ige 14

请注意每个容器的节与末尾的卷和网络列表之间的语法差异:

<...snip...>
    volumes:
      - "database-volume:/var/lib/postgresql/data"    ## <---- dash !
    networks:
      - foo        ### <---- dash!
      - private    ### <----- dash!
volumes:
  foovol:      # NO dash!
  barvol:     # NO dash!
networks:
  baznetwork:    # NO dash!
  private:    # NO dash!
Run Code Online (Sandbox Code Playgroud)