You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

docker-compose.yml执行docker compose up -d报错:services.networks must be a mapping

问题解决:Docker Compose报错services.networks must be a mapping

问题描述

执行命令:

docker compose up -d

收到错误提示:

validating /home/arl114/jenkins/docker-compose.yml: services.networks must be a mapping

使用YAML校验工具显示配置文件格式有效,但容器创建失败。

原配置文件内容:

version: '3'
services:
  jenkins:
    container_name: jenkins
    image: jenkins/jenkins
  ports:
    - "8080:8080"
  volumes:
    - "$PWD/jenkins_home:/var/jenkins_home"
  networks:
    - net
networks:
  net:

解决方案

问题出在YAML缩进错误,ports、volumes、networks属于jenkins服务的专属配置项,需要缩进至jenkins节点下,而非和jenkins同级。

修正后的配置文件:

version: '3'
services:
  jenkins:
    container_name: jenkins
    image: jenkins/jenkins
    ports:
      - "8080:8080"
    volumes:
      - "$PWD/jenkins_home:/var/jenkins_home"
    networks:
      - net
networks:
  net:

原因说明

原配置中,ports、volumes、networks被错误定义在services根节点下,而非具体的jenkins服务节点内。Docker Compose的语法规则要求:services节点下只能包含各个服务的独立映射配置,不能直接存在ports、networks这类字段。

YAML校验工具仅检查语法格式是否合法,不会验证Docker Compose的语义规则,因此会出现“格式有效但运行报错”的矛盾情况。

内容的提问来源于stack exchange,提问作者Adam Levin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 02:55:25