【问题标题】:docker-compose.yml file errors on running docker-compose up运行 docker-compose up 时出现 docker-compose.yml 文件错误
【发布时间】:2017-02-08 17:42:31
【问题描述】:

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

version:'2':  
services: 
    redis:
        image: redis  
        environment: 
            - HOST='localhost'
            - PORT=6379
        ports: 
            -"0.0.0.0:${PORT}:6379"

我在运行 docker-compose up 时收到此错误:

ERROR: The Compose file './docker-compose.yml' is invalid because:
Invalid service name 'services' - only [a-zA-Z0-9\._\-] characters are allowed
Unsupported config option for services: 'redis'

【问题讨论】:

    标签: macos docker redis yaml docker-compose


    【解决方案1】:

    您的文件存在多个问题。导致语法错误的原因是您在第一行多了一个冒号:

    version:'2': 
    

    这样你定义了一个标量字符串键version:'2',值为null。因此,由于您没有定义 docker compose 文件的 version,因此文件的其余部分(面向版本 2)将失败。这最好通过在version: 之后添加一个空格来解决

    此外,您的ports 定义不正确,其值应为sequence/list,并且您再次指定标量字符串-"0.0.0.0:${PORT}:6379",因为初始破折号后没有空格。

    将您的 docker_compose.yaml 文件更改为:

    version: '2'  
              # ^ no colon here
          # ^ space here
    services: 
        redis:
            image: redis  
            environment: 
                - HOST='localhost'
                - PORT=6379
            ports: 
                - "0.0.0.0:${PORT}:6379"
               # ^ extra space here
    

    【讨论】:

      【解决方案2】:

      只需将最后一个字符“:”删除到字符串version:'2':

      之后docker-compose.yml一定是这样的

      version:'2'
      services: 
      redis:
          image: redis  
          environment: 
              - HOST='localhost'
              - PORT=6379
          ports: 
              -"0.0.0.0:${PORT}:6379"
      

      【讨论】:

      • 您呈现的是一个无效的 YAML 文件,并且不会使用 docker-compose 使用的 YAML 解析器进行解析。即使第一行将被更正,由于各种原因,它也不是有效的docker-compose.yml 文件。 OP非常友好地接受您的回答。
      猜你喜欢
      • 2021-06-13
      • 2023-03-09
      • 2022-08-16
      • 2019-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-22
      • 2018-12-14
      相关资源
      最近更新 更多