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

Docker部署WordPress:数据库连接失败及最简部署方案咨询

Docker部署可编辑代码的WordPress最简方案

问题背景

我尝试用Docker部署WordPress。用docker run wordpress能正常运行,但这种方式没法获取数据库权限、编辑代码,满足不了学习插件/模板开发的需求。使用官方文档的docker-compose.yml配置后,容器启动正常,但访问localhost:8080时出现Error establishing a database connection错误。

执行docker-compose时的控制台输出:

[+] Running 11/11
 ⠿ db Pulled                                                   27.3s
   ⠿ 7b1a6ab2e44d Already exists                                0.0s
   ⠿ 034655750c88 Pull complete                                 4.3s
   ⠿ f0b757a2a0f0 Pull complete                                 4.7s
   ⠿ 5c37daf8b6b5 Pull complete                                 5.0s
   ⠿ b4cd9409b0f6 Pull complete                                 5.1s
   ⠿ dbcda06785eb Pull complete                                 6.2s
   ⠿ a34cd90f184c Pull complete                                 6.4s
   ⠿ fd6cef4ce489 Pull complete                                 7.1s
   ⠿ 3cb89a1550ea Pull complete                                21.7s
   ⠿ df9f153bd930 Pull complete                                21.7s
[+] Running 5/5
 ⠿ Network test-wp_default        Created                       0.1s
 ⠿ Volume "test-wp_db_data"       Created                       0.0s
 ⠿ Volume "test-wp_wp_data"       Created                       0.0s
 ⠿ Container test-wp-wordpress-1  Started                       0.7s
 ⠿ Container test-wp-db-1         Started                       0.7s

最简解决方案

修改后的docker-compose.yml配置

这个配置解决了数据库连接问题,同时支持本地编辑WordPress代码:

version: '3.8'

services:
  wordpress:
    image: wordpress:latest
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wp_user
      WORDPRESS_DB_PASSWORD: wp_pass
      WORDPRESS_DB_NAME: wp_db
    volumes:
      # 挂载wp-content到本地,直接编辑插件/模板
      - ./wp-content:/var/www/html/wp-content
      # 若需编辑核心代码,替换为:- ./wordpress:/var/www/html
    depends_on:
      db:
        condition: service_healthy

  db:
    image: mysql:8.0
    environment:
      MYSQL_DATABASE: wp_db
      MYSQL_USER: wp_user
      MYSQL_PASSWORD: wp_pass
      MYSQL_ROOT_PASSWORD: root_pass
    volumes:
      - db_data:/var/lib/mysql
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-proot_pass"]
      interval: 5s
      timeout: 5s
      retries: 5

volumes:
  db_data:

操作步骤

  1. 创建空文件夹(如wp-docker),进入该目录
  2. 创建上述docker-compose.yml文件
  3. 执行命令:docker-compose up -d
  4. 访问localhost:8080完成WordPress初始化
  5. 本地wp-content文件夹会同步容器内内容,直接在本地编辑插件、模板文件,容器内实时生效

方案说明

  • 解决数据库连接问题:通过healthcheck检测数据库是否就绪,确保WordPress在数据库完全启动后再启动,避免连接失败
  • 支持代码编辑:将wp-content挂载到本地,直接在本地编辑插件和模板;若需修改核心代码,可挂载整个/var/www/html目录
  • 简化配置:使用最新版镜像,配置项简洁,无冗余设置,适合学习开发使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 02:50:51