使用Docker搭建WordPress开发环境,并利用wp-cli快速进行构建
首先
在使用多个人一起进行WordPress开发时,我们通常会使用git来管理主题文件,但是不会将WordPress的核心文件和数据库文件纳入git的管理范围。在这种情况下,创建本地PC上的WordPress开发环境可能会很麻烦。尤其是如果要使用大约10个插件,通过管理界面逐个安装将会很痛苦。
为了解决这种麻烦的配置工作,我们可以将其代码化,并在Docker环境中快速创建。
最初需要准备的东西
-
- Docker環境
本記事では、Mac OS + docker desktop 2.1.0.1を使用しています
以下のファイル
docker-compose.yml
Dockerfile
WordPressのインストールシェル
The file.
这个文件。
docker-compose.yml 的释义是 Docker 组成文件。
-
- WordPress Coreのコンテナは、wp-cliからインストールするため使いません
- パスワード等は各自書き換えてください
version: '2'
services:
db:
image: mysql:5.7
volumes:
- ./mysql:/var/lib/mysql
ports:
- 3306:3306
networks:
- wpnet
environment:
- MYSQL_DATABASE=wordpress
- MYSQL_USER=scott
- MYSQL_PASSWORD=tiger
- MYSQL_ROOT_PASSWORD=root
app:
build:
context: ./app
dockerfile: Dockerfile
volumes:
- ./html:/var/www/html
- ./wp-install.sh:/tmp/wp-install.sh
ports:
- 80:80
depends_on:
- db
networks:
- wpnet
cli:
image: wordpress:cli-2.3.0-php7.1
volumes_from:
- app:rw
networks:
- wpnet
networks:
wpnet:
应用程序的Dockerfile
- WordPressを起動させるために必要なextensionをインストールしています
FROM php:7.1-apache
RUN \
{ apt-get update; \
apt-get install -y zlib1g-dev libzip-dev; \
docker-php-ext-install zip; \
docker-php-ext-install mysqli; \
docker-php-ext-configure zip; \
docker-php-ext-configure mysqli ; \
}
wp-install.sh 安装脚本
- このファイルでWordPressのダウンロード、設定ファイル作成、インストール、プラグインインストールを行なっています
#!/bin/bash
set -ex;
WPINSTALLDIR=/var/www/html
wp core download \
--locale=ja --version=5.2.2 --path=${WPINSTALLDIR}
wp config create \
--dbname=wordpress --dbuser=scott --dbpass=tiger --dbhost=db:3306 \
--force --path=${WPINSTALLDIR}
wp core install \
--url=localhost --title=テスト用WordPress \
--admin_user=hogehoge \
--admin_password=passpasspass \
--admin_email=your-emailaddress \
--path=${WPINSTALLDIR}
wp plugin install \
classic-editor advanced-custom-fields custom-post-type-ui custom-post-type-permalinks \
tinymce-advanced \
--activate --path=${WPINSTALLDIR}
wp plugin installでインストールするプラグインを指定しています。
建立途径
安装WordPress本身和插件
- docker-composeからコンテナを起動します
$ docker-compose -f "docker-compose.yml" up -d --build
Creating network "wordpress-cli_wpnet" with the default driver
Creating wordpress-cli_db_1 ... done
Creating wordpress-cli_app_1 ... done
Creating wordpress-cli_cli_1 ... done
- 起動が終わったらコンテナにログインします
$ docker-compose run --rm cli bash
Starting wordpress-cli_db_1 ... done
Starting wordpress-cli_app_1 ... done
bash-5.0$
- ログイン後、用意しておいたインストールシェルを実行します
bash-5.0$ chmod +x /tmp/wp-install.sh
bash-5.0$ /tmp/wp-install.sh
+ wp core download --locale=ja --path=/var/www/html/wp --version=5.2.2 --force
Creating directory '/var/www/html/wp/'.
Downloading WordPress 5.2.2 (ja)...
(以下、省略)
- ここまでできたらWordPressにログインしてみましょう。WordPressのインストールとともにプラグインのインストールも完了しています!
如果使用Custom Post Type UI插件的话。
这是一个可以在WordPress管理界面上设置自定义文章的插件,并且该插件支持wp-cli。如果将设置导出为json格式,可以轻松地导入。
bash-5.0$ wp cptui
usage: wp cptui export [--type=<type>] [--dest-path=<path>]
or: wp cptui import [--type=<type>] [--data-path=<path>]
- typeは、post_type or taxonomyを指定します
导入post_type设置
wp cptui import --type=post_type --data-path=/var/www/html/_conf/cptui-post.json
可以将自定义文章的设置导入到代码中!
关于wp-cli
-
- 上記以外にも初期時に必要なtermを作ったりすることもできます。
参照:wp create term
wp-cliを使うことによって、WordPressとプラグインのインストールをコード化することができました。これにより、複数人で開発する際に、環境を揃えることが容易になるし、一度壊した環境を再度構築することが簡単になります。これで管理画面からプラグインを1個づつインストールする必要がなくなった!!
wp-cliは、WordPressの最新版にアップグレードすることができるたり、ユーザー登録ができたりと、開発環境だけでなく、本番環境で利用してもメリットがあるツールだと思います。本記事では、Docker上で使っていますが、Docker使っていないWordPressでも使えます。
参照:wp core update
参照:wp user
最后
第一次使用wp-cli,真是感慨万分,感谢这么方便的工具的作者。如果发现更方便的使用方法,我会再次发表文章。如果有任何错误或者类似用法,请在评论中告诉我,这将非常有帮助。
请参考以下网站
-
- WP-CLI Commands
-
- Docker Hub wordpress
- エンジニアな自分がWordPressで何度も調べたり感心したりした事