使用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。結束。