最近刚好遇上实战部署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就可以运行起来了。
修改文件以后,直接保存,刷新浏览器,就能热更新了。
注意:
- 因为文件本身是WordPress,所以不用再依赖wordpress镜像
- 上传文件的时候,docker-compose.yml文件需要忽略
- 如果一开始就在服务器里用Docker部署了WordPress,那么需要忽略wp-config.php,以防和线上的构建冲突
- 数据库里的数据如果想和线上的统一,那就让后端拷贝一份