使用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で何度も調べたり感心したりした事
广告
将在 10 秒后关闭
bannerAds