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

docker-compose启动报错Additional property web is not allowed问题咨询

Docker Compose配置错误排查

你的配置存在两处核心错误,其中缩进问题是触发当前报错的直接原因:

  • 第一处(触发报错的核心原因):YAML缩进不符合规范
    YAML语法对缩进敏感性极高,web属于services下的子服务,需要和同级的db服务保持相同的缩进层级。你当前配置里的web块缩进和顶级字段services对齐,导致Docker Compose将web识别为非法的顶级配置项,直接抛出Additional property web is not allowed报错。
  • 第二处(隐藏配置错误):WordPress持久化路径笔误
    你配置的web服务卷挂载目标路径为/var/wwwh/html,多写了一个字母w,WordPress官方镜像的站点根目录为/var/www/html,该错误会导致站点内容无法正常持久化,启动后会出现访问异常。

修正后的完整配置

version: "3.8"
services:
  db:
    image: mysql:latest
    volumes:
      - type: volume
        source: dbmysql
        target: /var/lib/mysql
    networks:
      - webappnet
    environment:
      MYSQL_ROOT_PASSWORD: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
      MYSQL_DATABASE: wordpress
    deploy:
      replicas: 1
      update_config:
        delay: 5s
        parallelism: 1
      restart_policy:
        condition: on-failure
      placement:
        constraints: [node.hostname == master]
  web:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      - type: volume
        source: dbweb
        target: /var/www/html
    networks:
      - webappnet
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
    deploy:
      replicas: 1
      update_config:
        delay: 10s
      restart_policy:
        condition: on-failure
      placement:
        constraints: [node.hostname == slave1]      
volumes:
  dbmysql:
  dbweb:      
networks:
  webappnet:
    driver: overlay
    name: webappname

注:该配置包含deploy节点和overlay网络配置,适配Docker Swarm集群部署场景,使用docker stack deploy命令启动即可。如果是单机部署不需要overlay网络和placement约束,可自行删除对应配置。

内容的提问来源于stack exchange,提问作者حسن شفیعی

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:54:01