yaml.scanner.ScannerError: mapping values are not allowed here in “./docker-compose.yml”, line 60, column 35 解决方法

在执行“启动 docker-compose”以下命令:

docker-compose up -d && docker-compose logs -f

时。

 

结果报错了,错误代码如下:

ERROR:yaml.scanner.ScannerError: mapping values are not allowed here in "./docker-compose.yml", line 60, column 35

中文翻译

错误:yaml.scanner.scannerror:映射值不允许出现在“./docker compose.yml”第60行第35列中

yaml.scanner.ScannerError: mapping values are not allowed here in "./docker-compose.yml", line 60, column 35

 

解决方法

出现这个错误的是因为yml格式不正确,谷歌定义的yml格式太严格了,每个冒号后面都必须带有空格。

解决方法也很简单,只需要将:

 

原格式:

version:"3"
services:
  web:   
    image: licerlee/friendlyhello:v1
    deploy:
      replicas:5
      resources:
        limits:
          cpus:"0.1"
          memory:50M
      restart_policy:
        condition: on-failure
    ports:
      - "80:80"
    networks:
      - webnet
networks:
  webnet:

改为

version: "3"
services:
  web:
   
    image: licerlee/friendlyhello:v1
    deploy:
      replicas: 5
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
      restart_policy:
        condition: on-failure
    ports:
      - "80:80"
    networks:
      - webnet
networks:
  webnet:

 

注意: 上边示例仅供说明,并非我项目的配置文件。

 

然后,再执行“启动 docker-compose”命令即可成功!

启动 docker-compose

    A+
发布日期:2019年11月25日 11:24:04  所属分类:Docker
最后更新时间:2023-07-28 19:31:24
头像
  • ¥ 69.0元
  • 市场价:69.0元
  • ¥ 98.0元
  • 市场价:298.0元
  • ¥ 129.0元
  • ¥ 398.0元
  • 市场价:498.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  0   博主  0

  1. 头像 阿采 5

    我今天也报了如下这个错误:
    yaml.scanner.ScannerError: mapping values are not allowed here
    in "./docker-compose.yml", line 15, column 14

     

    YAML文件如下:
    version: '3'

    services:
    traefik:
    image: traefik:latest # The official Traefik docker image
    command: --api --docker # Enables the web UI and tells Traefik to listen to docker
    ports:
    - "80:80" # The HTTP port
    - "8080:8080" # The Web UI (enabled by --api)
    volumes:
    - /var/run/docker.sock:/var/run/docker.sock # So that Traefik can listen to the Docker events
    restart: always
    service:
    build: .
    environment:
    -MY_MESSAGE=load1
    labels:
    -'traefik.frontend.rule=Host:load.test'
    -'traefik.backend=load'

     

    最终解决方法跟本文原理差不多,如下:

    这是因为docker-compose文件中的缩进。此外,您还需要遵循环境变量和标签的syntax of version 3。
    version: '3'

    services:
    traefik:
    image: traefik:latest # The official Traefik docker image
    command: --api --docker # Enables the web UI and tells Traefik to listen to docker
    ports:
    - "80:80" # The HTTP port
    - "8080:8080" # The Web UI (enabled by --api)
    volumes:
    - /var/run/docker.sock:/var/run/docker.sock # So that Traefik can listen to the Docker events
    restart: always

    service:
    build: .
    environment:
    - MY_MESSAGE= "load1"
    labels:
    - traefik.frontend.rule:"Host:load.test"
    - traefik.backend:"load"

     

     

  2. 头像 星辰大海 5

    今天我也出现了类似这个错误,如下:
    错误:yaml.scanner.scanner错误:“./docker compose.yml”第5行第19列此处不允许映射值。
    后来参考本文章,我又重新写了一遍就正常了。