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

Docker Compose部署WordPress时WP-CLI报数据库连接错误

问题场景

使用如下docker-compose配置搭建WordPress运行环境:

version: '2'
services:
  php:
    image: wordpress:5.5-php7.4-apache
    volumes:
      - ~/.composer-docker/cache:/root/.composer/cache:delegated
      - ./htdocs/:/var/www/html:delegated
    ports:
      - '80:80'
    networks:
      - my-network

  wpcli:
    image: wordpress:cli-2-php7.4
    user: xfs
    depends_on:
      - db
      - php
    volumes:
      - ./htdocs:/var/www/html
    environment:
      WORDPRESS_DB_USER: user
      WORDPRESS_DB_PASSWORD: password

  db:
    image: mysql:5.7
    restart: always
    environment:
      - DB_CONNECTION=mysql
      - DB_HOST=db:3306
      - MYSQL_DATABASE=mds
      - MYSQL_USER=user
      - MYSQL_PASSWORD=password
      - MYSQL_ROOT_PASSWORD=password
    ports:
      - '3306:3306'
    expose:
      - '3306'
    volumes:
      - my-db:/var/lib/mysql
    #volumes:
    #  - ~/mysql:/var/lib/mysql
    networks:
      - my-network

  composer_installation:
    container_name: composer_installation
    image: composer:1.10.19
    command: ["composer", "install"]
    volumes:
      - ./htdocs/:/app

volumes:
  my-db:
networks:
  my-network:
    driver: bridge

当前环境运行状态:

  • php、mysql、wordpress服务均运行正常
  • 宿主机可通过数据库客户端使用0.0.0.0:3306正常连接数据库

调用wp-cli时返回如下错误:

Error: Error establishing a database connection.

故障原因

故障由两处配置缺失导致:

  • wpcli服务未加入my-network桥接网络,与db服务不在同一网络平面,无法通过服务名db解析到数据库容器的内网地址
  • wpcli服务的环境变量未配置数据库地址、数据库名称参数,无法生成正确的数据库连接配置
修复方案
  1. 编辑docker-compose.yml文件,修改wpcli服务配置段,补全网络配置和缺失的数据库连接环境变量,修改后的wpcli配置如下:
wpcli:
    image: wordpress:cli-2-php7.4
    user: xfs
    depends_on:
      - db
      - php
    volumes:
      - ./htdocs:/var/www/html
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: user
      WORDPRESS_DB_PASSWORD: password
      WORDPRESS_DB_NAME: mds
    networks:
      - my-network
  1. 保存配置后,在docker-compose.yml所在目录执行以下命令重建wpcli容器:
docker-compose up -d --force-recreate wpcli
  1. 容器重建完成后,再次调用wp-cli即可正常连接数据库执行操作。

内容的提问来源于stack exchange,提问作者open-ecommerce.org

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 20:06:26