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

新手上路,请多包涵

我的 docker-compose.yml 如下所示,我正在尝试遵循 此处 docker 注册表文档中的 compose 文件。当我运行 docker-compose up 时,出现以下错误。

错误:在文件 ‘./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

我的码头工人版本是

Docker 版本 1.12.1,构建 23cf638

docker-compose 版本是

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

原文由 Sudarshan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

问题是您没有正确缩进字段。您的 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

原文由 JesusTinoco 发布,翻译遵循 CC BY-SA 4.0 许可协议

请注意每个容器的节与最后列出的卷和网络之间的语法差异:

 <...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!

原文由 mistige 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题