使用DockerCompose在本地重新部署WordPress
你已经在运行WordPress了,不想在本地进行复制吗?
关于Docker安装,我们将省略不提。
目录结构
在创建容器之前
├── db-data
│ └── wordpress.sql.zip
├── docker-compose.yml
└── .env
准备数据
获取wp-content的内容
通过FTP服务器等方式获取含有主题文件等的wp-content文件夹。
获取SQL转储文件
可以直接从服务器上导出数据,或者使用名为BackWPup的插件轻松备份和获取数据。
以zip格式获取数据,并直接放置在db-data目录下。
在以下网站上可以参考BackWPup的使用方法:
确保使用BackWPUp来可靠地进行WordPress备份的方法。
创建docker-compose.yml文件
version: '3.3'
services:
mysql:
build:
context: ./docker/mysql/
restart: always
environment:
- MYSQL_DATABASE
- MYSQL_USER
- MYSQL_PASSWORD
- MYSQL_ROOT_PASSWORD
ports:
- 3306:3306
volumes:
- mysql_data:/var/lib/mysql
- ./docker/mysql/init:/docker-entrypoint-initdb.d
wordpress:
build:
context: .
dockerfile: ./docker/wordpress/Dockerfile
depends_on:
- mysql
ports:
- 8080:80
restart: always
environment:
- WORDPRESS_DB_HOST
- WORDPRESS_DB_USER
- WORDPRESS_DB_PASSWORD
- WORDPRESS_DB_NAME
volumes:
- ./:/var/www/html
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
restart: always
environment:
- PMA_ARBITRARY
- PMA_HOSTS
- PMA_USER
- PMA_PASSWORD
depends_on:
- mysql
ports:
- 8888:80
volumes:
mysql_data:
補充
如果您不想在操作系统启动时自动启动该容器的话
restart: always
将以下描述翻译成中文,只需要一种选项:
restart: no
我觉得改成…会更好。
创建env文件
将.env文件放置在根目录下
MYSQL_DATABASE=wordpress
MYSQL_USER=root
MYSQL_PASSWORD=root
MYSQL_ROOT_PASSWORD=root
WORDPRESS_DB_HOST=mysql:3306
WORDPRESS_DB_USER=root
WORDPRESS_DB_PASSWORD=root
WORDPRESS_DB_NAME=wordpress
PMA_ARBITRARY=1
PMA_HOSTS=mysql
PMA_USER=root
PMA_PASSWORD=root
启动Docker容器
确认当前正在运行的容器
docker-compose ps
如果有与yml配置的端口相同的端口存在,它们会发生冲突,所以请先停止正在运行的容器。
然后就是终于启动容器了。
docker-compose up -d
更换wp-content文件夹
当启动时,会自动生成与WordPress相关的文件,因此,请提前准备好位于根目录下的wp-content/文件夹中的备份文件,并将其完全替换。
数据库的域替换
访问 localhost:8888,并在phpmyadmin中逐步替换域名。
通过将当前使用的WordPress网站的URL替换为 http://localhost:8080/ ,可以在本地环境中使用WP。
如果您参考一下前人的宝贵网站,对于详细的步骤应该会非常易懂。
如何使用phpMyAdmin将WordPress在另一个域名上使用
启动WordPress
访问 http://localhost:8080/。
补充完整
停止容器
docker-compose stop
总结
我們已經成功地在本地再現了正在運行的Wordpress網站。相比於Dockerfile,docker-compose.yml的描述更加簡潔和易於理解。所以我們選擇了docker-compose。結束。