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

部署带SSL的WordPress时docker-compose.yml找不到':'报错如何解决

Docker Compose部署带SSL的WordPress报错解决方案

报错原因

你看到的YAML扫描错误是语法解析问题,报错指向volumes相关行是YAML解析器错位识别导致的,真正的触发点有两个:

  1. certbot服务的command字段中,邮箱参数info@domain.com和后续的--agree-tos参数之间缺少空格,拼接成了非法字符串,解析器误将其识别为需要匹配冒号的键,导致后续的根节点volumes字段被错误归类到certbot服务的子项,触发could not find expected ':'报错。
  2. 隐藏配置问题:webserver服务中声明使用了自定义网络app-network,但配置中没有在根节点定义该网络,且其余服务没有加入该网络,即使语法修复后也会出现服务间网络不通的问题。

修复方案

1. 基础修复(无需自定义网络)

补全certbot命令的空格,删除webserver服务中的自定义网络配置即可,修复后的完整配置如下:

version: '3'
services:
  db:
    image: mysql:8.0
    container_name: db
    restart: unless-stopped
    command: '--default-authentication-plugin=mysql_native_password'
    env_file: .env
    environment:
      - MYSQL_DATABASE=wordpress
    volumes: 
      - dbdata:/var/lib/mysql
  wordpress:
    image: wordpress:5-fpm-alpine
    depends_on:
      - db
    container_name: wordpress
    restart: unless-stopped
    volumes:
      - wordpress:/var/www/html
    env_file: .env
    environment:
      - WORDPRESS_DB_HOST=db:3306
      - WORDPRESS_DB_USER=$MYSQL_USER
      - WORDPRESS_DB_PASSWORD=$MYSQL_PASSWORD
      - WORDPRESS_DB_NAME=wordpress
  webserver:
    depends_on:
      - wordpress
    image: nginx:1.15.12-alpine
    container_name: webserver
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - wordpress:/var/www/html
      - ./nginx/:/etc/nginx/conf.d
      - certbotdata:/etc/letsencrypt
  certbot:
    depends_on:
      - webserver
    image: certbot/certbot
    container_name: certbot
    volumes:
      - certbotdata:/etc/letsencrypt
      - wordpress:/var/www/html
    command: certonly --webroot --webroot-path=/var/www/html --email info@domain.com --agree-tos --no-eff-email --force-renewal -d web.domain.com
volumes:
  wordpress:
  dbdata:
  certbotdata:

2. 保留自定义网络的修复方式

如果需要保留app-network自定义网络,需要在根节点补充网络定义,并给所有服务添加网络配置:

  • 在和services、volumes平级的位置添加网络声明:
networks:
  app-network:
    driver: bridge
  • 给db、wordpress、certbot服务都添加如下配置,和image、container_name等字段平级:
networks:
  - app-network

内容的提问来源于stack exchange,提问作者Sam Leurs

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:18:05