我收到错误消息 'Version in "./docker-compose.yaml" is invalid - it should be a string.'

I get error message 'Version in "./docker-compose.yaml" is invalid - it should be a string.'

我在执行 运行 命令时收到此错误消息 - docker-comose up

ERROR: Version in "./docker-compose.yaml" is invalid - it should be a string.

我的docker-撰写文件:

    version: 3.9
    services:
      backend:
        build: .
        ports:
          - 8080:8080
        volumes:
          - ./:app
        depends_on:
          - db
      db:
        image: mysql:8
        restart: always
        environment:
          MYSQL_DATABASE: ambassador
          MYSQL_USER: root
          MYSQL_PASSWORD: root
          MYSQL_ROOT_PASSWORD: root
        volumes:
          - ./storage/dbdata:/var/lib/mysql
        ports:
          - 3306:3306

这里的错误信息很清楚:

Version in "./docker-compose.yaml" is invalid - it should be a string.

version指定为数字,但应为字符串,即:

version: "3.9"

如果没有显式引号,yaml 解析器将尝试推断指定值的类型。在这种情况下 3.9 看起来像一个浮点数,因此解析器将把它解析为一个数字——但是 docker-compose 规范要求它是一个字符串;所以你必须在这里明确引用它。

同理,例如对于值 truefalse:如果没有显式引用,yaml 解析器会将它们解析为布尔值,如果在需要字符串值的地方使用它们,则会抛出错误。