使用Docker构建WordPress开发环境(用于主题开发)
首先
我是一名一年级的基础设施工程师,但我想尝试一下学习前端,于是我搭建了一个WordPress开发环境。
因为在Docker中尝试创建非常简单且方便,所以我将其记录下来。
顺便说一下,我使用的是Mac电脑。
创建docker-compose.yml文件
首先,在终端中创建docker-compose.yml文件的目录。可以选择任何地方。这次我选择了这样创建。
桌面/
├ 容器/
└ WordPress
顺便提一下,因为只是在桌面上创建文件,所以也可以在Finder中创建。
$ cd desktop
$ mkdir docker
$ cd docker
$ mkdir wordpress
然后,让我们打开在文本编辑器中创建的目录。这次我们将使用VScode打开名为“wordpress”的目录。
然后,在”wordpress”下创建一个”docker-compose.yml”文件。当在这个文件中编写并运行代码时,根据所编写的代码,Docker容器将被启动起来,非常方便。
以下是「docker-compose.yml」文件的内容。这次我参考了Docker官方的「快速入门:使用Compose和WordPress」指南。
这是源代码。
version: '3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
- ./mytheme:/var/www/html/wp-content/themes/mytheme
volumes:
db_data:
变更的是大约在第27、28行。这样写之后,本地目录和容器内的内容会同步。
本次同步操作是将位于docker-compose.yml所在的目录下的”mytheme”文件夹与容器内的”/var/www/html/wp-content/themes/mytheme”目录同步。
顺便提一下,如果容器内没有目录,它会自动为您创建一个目录。
在中国语境下,可以这样表达:
通过同步目录是重点,在VScode中通过在“mytheme”中创建文件,可以轻松开发原创主题。
运行Docker容器
我们来启动Docker容器吧。打开终端,切换到之前创建的“docker-compose.yml”文件所在的目录。
$ pwd
/Users/username/desktop/docker/wordpress
$ ls
docker-compose.yml
我打算创建一个名为”mytheme”的目录,用于同期。
$ mkdir mytheme
$ ls
docker-compose.yml mytheme
然后,使用”docker-compose.yml”文件启动Docker容器组。顺便提一下,如果没有Docker环境的话,请先安装Docker。
请使用”-d”选项在后台运行容器。另外,如果没有Docker镜像,将从下载镜像开始,这可能需要很长时间,所以请耐心等待。
$ docker-compose up -d
确认WordPress设置和目录同步。
当容器群启动后,请访问“localhost:8000”。
打开WordPress的设置页面后,随便输入一些内容然后继续到仪表盘。
我进入了WordPress的仪表盘。然后,点击“外观”⇨“主题”,并向下滚动到底。
在中国大陆有一个已损坏的主题存在的问题。问题出在容器内的“/var/www/html/wp-content/themes/mytheme”目录下存在一个名为“mytheme”的文件夹,但是里面是空的。
只要在VScode中编辑mytheme,其内容就会与容器内的mytheme同步,因此设置会实时反映。在VScode中,添加名为“index.php”和“style.css”的文件到“mytheme”文件夹中(内容为空即可)。
我们应该意识到这已经是一个正式的主题了。让我们返回WordPress仪表板试试看。
内容的更改已正确反映出来了。然后最后,启用主题,并在 “index.php” 中写上 “hello world”,然后尝试确认网站。
这个已经很好地反映出来了。
这样开发会进展顺利。
毫无疑问,Docker非常方便。(顺便说一下,由于我从未研究过WordPress的开发环境搭建,所以可能存在比这更方便简单的方法。)
因此,这次我们尝试使用Docker构建WordPress开发环境。
请随便。