在执行“启动 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列中
解决方法
出现这个错误的是因为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”命令即可成功!
2023年07月28日 19:31:13 沙发
我今天也报了如下这个错误:
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"
2023年07月28日 19:28:15 板凳
今天我也出现了类似这个错误,如下:
错误:yaml.scanner.scanner错误:“./docker compose.yml”第5行第19列此处不允许映射值。
后来参考本文章,我又重新写了一遍就正常了。