如何使用docker-compose搭建与WordPress生产环境一致的镜像环境
本地Docker WordPress环境对齐生产配置的实现方法
1. 提前确认生产环境参数
先从生产环境获取以下配置信息,确保本地配置完全对齐:
- PHP的精确版本,比如
7.4、8.1等 - 已安装的PHP扩展列表,比如gd、curl、redis、mbstring等
- php.ini的自定义配置项,比如上传大小限制、内存限制、最大执行时间等
- Web运行时类型,是Apache还是FPM模式
2. 编写自定义Dockerfile
在项目目录下新建wordpress文件夹,在文件夹内新建Dockerfile文件,基于和生产PHP版本匹配的官方WordPress镜像做自定义修改,示例如下:
# 基础镜像选择和生产PHP版本、运行时完全匹配的官方WordPress镜像,示例为PHP7.4+Apache版本 FROM wordpress:php7.4-apache # 安装生产环境所需的额外系统依赖 RUN apt-get update && apt-get install -y --no-install-recommends \ libbz2-dev \ libmagickwand-dev \ && rm -rf /var/lib/apt/lists/* # 安装生产环境启用的额外PHP扩展 RUN docker-php-ext-install bz2 exif RUN pecl install imagick redis \ && docker-php-ext-enable imagick redis # 写入和生产一致的php.ini自定义配置 RUN { \ echo 'upload_max_filesize = 64M'; \ echo 'post_max_size = 64M'; \ echo 'memory_limit = 256M'; \ echo 'max_execution_time = 300'; \ } > /usr/local/etc/php/conf.d/custom-production.ini # 如有自定义Apache配置,可通过COPY指令替换默认配置 # COPY ./apache-custom.conf /etc/apache2/sites-available/000-default.conf
3. 修改docker-compose.yml配置
将原来wordpress服务中的image: wordpress:latest配置替换为本地构建规则,修改后的服务配置示例:
wordpress: depends_on: - db # 替换原有image字段,指定自定义Dockerfile所在目录 build: ./wordpress ports: - "8001:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress networks: - wpsite volumes: - "../../blogs:/var/www/html" - "../../blogs/plugins:/var/www/html/wp-content/plugins"
4. 启动服务
执行以下命令重新构建镜像并启动服务即可:
docker-compose up -d --build
--build参数会自动根据你编写的Dockerfile构建自定义镜像,无需手动执行docker build命令。
注意事项
- 如果生产使用的是FPM模式的PHP,需要额外在docker-compose中新增Nginx服务配合自定义的FPM版WordPress镜像使用
- 所有PHP扩展、系统依赖、配置项都要和生产环境完全一致,避免出现本地运行正常生产报错的环境差异问题
- 后续如果生产配置有变更,只需要修改Dockerfile后重新执行带
--build参数的启动命令即可更新本地环境
内容的提问来源于stack exchange,提问作者Happy Coder
相关产品推荐
相关产品推荐

