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

Docker部署WordPress导入脚本装WP-CLI遇YAML语法错误求助

解决Docker Compose中安装WP-CLI的YAML语法错误与正确方案

嘿,作为Docker新手碰到这种YAML语法错误确实挺闹心的,我来帮你捋清楚问题出在哪,以及怎么解决。

首先,你的错误根源

你遇到的yaml.scanner.ScannerError本质是把Dockerfile的专属指令COPY直接写到了docker-compose.yml里。这俩是完全不同的工具:

  • COPY是Dockerfile的指令,仅在构建镜像时用来复制本地文件到镜像内;
  • docker-compose.yml是用来定义容器运行环境的配置文件,根本不认识COPY这个配置字段,所以YAML解析器找不到对应的键值对格式(缺少冒号),直接报错。

方案一:自定义带WP-CLI的WordPress镜像(推荐,长期稳定)

这个方法会构建一个预装WP-CLI的WordPress镜像,以后启动容器时直接用这个镜像,WP-CLI会一直存在。

  1. 在你的项目根目录下创建Dockerfile文件,内容如下:
FROM wordpress:latest

# 把本地的install.sh复制到容器临时目录
COPY install.sh /tmp/install.sh

# 赋予脚本执行权限并运行,最后清理脚本
RUN chmod +x /tmp/install.sh && /tmp/install.sh && rm /tmp/install.sh
  1. 确保你的install.sh脚本和Dockerfile、docker-compose.yml在同一目录,脚本内容不变:
echo "Installing WP-CLI"
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
mv wp-cli.phar /usr/local/bin/wp
  1. 修改docker-compose.yml,将原来的image: wordpress:latest替换为build: .(表示基于当前目录的Dockerfile构建镜像):
version: '3.1'
services:
  wordpress:
    depends_on:
      - db
    # 替换为构建本地镜像的配置
    build: .
    volumes:
      - wordpress_files:/var/www/html
    ports:
      - "8080:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: user
      WORDPRESS_DB_PASSWORD: password
      WORDPRESS_DB_NAME: wordpressdb
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_RANDOM_ROOT_PASSWORD: 1
      MYSQL_DATABASE: wordpressdb
      MYSQL_USER: user
      MYSQL_PASSWORD: password
volumes:
  wordpress_files:
  db_data:
  1. 执行构建并启动容器:
docker-compose up --build -d

方案二:容器启动后临时安装WP-CLI(适合快速测试)

如果不想构建镜像,也可以在容器运行后手动安装WP-CLI,缺点是容器重启后WP-CLI会消失:

  1. 先正常启动原有环境:
docker-compose up -d
  1. 进入WordPress容器执行安装命令:
docker-compose exec wordpress bash
# 进入容器后依次执行
echo "Installing WP-CLI"
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
mv wp-cli.phar /usr/local/bin/wp
# 验证安装是否成功
wp --version

额外提醒

docker-compose.yml对缩进要求非常严格,必须用空格(不能用Tab键),且每个层级的缩进要统一(比如每个子项缩进2个或4个空格),这也是常见的YAML语法错误诱因,以后修改配置时要注意哦。

内容的提问来源于stack exchange,提问作者cheeze yes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:22:37