无法运行docker-compose.yml报yaml.parser.ParserError错误如何解决
docker-compose.yml 解析错误排查
yaml.parser.ParserError为YAML文件缩进不规范触发的语法错误,YAML依靠缩进识别配置层级,缩进不匹配会直接导致解析失败。
原配置存在的问题
- 层级缩进缺失:
services节点下的jenkins服务定义、jenkins服务下的container_name/image/ports等配置项,均未做对应层级的缩进,和父级节点齐平,解析器无法识别从属关系 - 顶层节点缩进错误:最后定义的
networks节点前存在多余前置空格,和同层级的version/services节点不对齐 - 配置遗漏:
jenkins/jenkins官方镜像默认使用50000端口和构建agent通信,原配置未映射该端口,后续使用分布式构建会出现连接问题
修正后的完整配置
version: '3' services: jenkins: container_name: jenkins image: jenkins/jenkins ports: - "8080:8080" - "50000:50000" volumes: - "$PWD/jenkins_home:/var/jenkins_home" networks: - net networks: net:
启动前置操作
- 在docker-compose.yml所在目录执行
mkdir -p jenkins_home创建挂载目录 - 执行
chmod 777 jenkins_home给目录分配写入权限,避免Jenkins进程因权限不足无法启动 - 执行
docker-compose config校验配置语法,无报错后即可执行docker-compose up -d后台启动服务
内容的提问来源于stack exchange,提问作者Robert Kovalauskis
相关产品推荐
相关产品推荐

