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

Mac平台Docker Compose部署WordPress插件持久化问题及解决

解决Docker WordPress本地开发中插件与上传文件持久化问题

问题场景

我正在用最新版Docker for Mac做WordPress主题开发,项目根目录就是我的主题目录。最初的docker-compose.yml已经搞定了数据库持久化和主题目录映射的问题,但每次执行docker-compose down或rm后,插件文件夹都会被重置,上传的文件也跟着丢失。我需要把插件和上传文件目录映射到本地主题项目目录里,同时保持PhpStorm里的极简目录结构(主题作为项目根),不需要遵循标准WordPress目录结构,而且这些目录不会提交到版本控制,只用于本地数据持久化。

解决方法

在WordPress服务的volumes配置中新增两个本地目录映射,把容器内的wp-content/plugins和wp-content/uploads分别绑定到本地项目根的./plugins和./uploads目录。修改后的完整docker-compose.yml配置如下:

version: '3.7'
networks:
  wordpress:
    ipam:
      config:
        - subnet: 172.25.0.0/16
services:
  db:
    image: mysql:5.7
    volumes:
      - ./db:/var/lib/mysql:delegated
    ports:
      - "3306:3306"
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    networks:
      - wordpress
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      - .:/var/www/html/wp-content/themes/testing:delegated
      - ./plugins:/var/www/html/wp-content/plugins
      - ./uploads:/var/www/html/wp-content/uploads
    ports:
      - "80:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_AUTH_KEY: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
      WORDPRESS_SECURE_KEY: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
      WORDPRESS_LOGGED_IN_KEY: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
      WORDPRESS_NONCE_KEY: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
      WORDPRESS_SECURE_AUTH_SALT: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
      WORDPRESS_LOGGED_IN_SALT: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
      WORDPRESS_NONCE_SALT: 5f6ede1b94d25a2294e29eeba929a8c80a5ac0fb
      WORDPRESS_DEBUG: 1
    networks:
      - wordpress

关键改动说明

  • 新增./plugins:/var/www/html/wp-content/plugins:将本地项目根下的plugins目录与容器内的插件目录绑定,安装的插件会同步到本地,执行docker-compose down后不会丢失
  • 新增./uploads:/var/www/html/wp-content/uploads:同理,上传的媒体文件会同步到本地uploads目录,实现持久化

这个方案完全适配本地开发的需求,既能保持极简的项目目录结构,又能避免每次重启容器后丢失插件和上传数据,而且这些本地目录可以通过.gitignore排除,不会提交到版本控制或预发布环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:44:02