docker-compose.yml运行docker-compose时的文件错误

时间:2017-02-08 17:42:32

标签: macos docker redis yaml docker-compose

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

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

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

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'

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:-2)

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

之后docker-compose.yml必须像

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