最近刚好遇上实战部署Docker,它可以不顾本地环境如何,采用Compose定义Dockerfile文件,部署好应用程序的环境,一键启动并运行整个应用程序,后续只要这个文件里存在当初定义好的Dockerfile文件,就可以直接运行测试了。所以尝试用Docker在本地搭建WordPress5.5的开发环境,下面是爬完坑的最终结果,可以拿来借鉴。

我们的技术分享 07 Skywen天问信息 作者 Mogmail 2021.02.24


部署源码

首先,先新建docker-compose.yml,定义好所需的数据库和php:

version: '3'

services:

  db:
    image: mysql:latest
    volumes:
      - db_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: wordpress1
    ports: 
      - 3307:3306
  php:
    image: wordpress:5.5
    ports:
      - "8080:80"
    volumes: 
      - ../:/var/www/html
    links: 
      - db:mysql
    depends_on: 
      - db


volumes:
    db_data: {}

wp-config文件里的数据库账号密码需要和上面的文件相互对应,修改如下:

// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress数据库的名称 */
define( 'DB_NAME', 'wordpress1' );

/** MySQL数据库用户名 */
define( 'DB_USER', 'root' );

/** MySQL数据库密码 */
define( 'DB_PASSWORD', '123456' );

/** MySQL主机 */
define( 'DB_HOST', 'mysql' );

/** 创建数据表时默认的文字编码 */
define( 'DB_CHARSET', 'utf8mb4' );

/** 数据库整理类型。如不确定请勿更改 */
define( 'DB_COLLATE', '' );

最后,右键文件,Compose Up就可以运行起来了。
2021.02.24-2021年使用Docker快速搭建本WordPress5.5开发环境-Skywen天问信息
修改文件以后,直接保存,刷新浏览器,就能热更新了。
注意:

  1. 因为文件本身是WordPress,所以不用再依赖wordpress镜像
  2. 上传文件的时候,docker-compose.yml文件需要忽略
  3. 如果一开始就在服务器里用Docker部署了WordPress,那么需要忽略wp-config.php,以防和线上的构建冲突
  4. 数据库里的数据如果想和线上的统一,那就让后端拷贝一份

2021.02.24-2021年使用Docker快速搭建本WordPress5.5开发环境-Skywen天问信息