创建一个包含WP-CLI的WordPress容器

由于WordPress容器和wp-cli容器的发行版本不同,因此在主要依赖于用户ID的协作方面遇到了困难,所以决定将其添加到WordPress容器中。

布局

这里使用git进行交换。
※package.json与/docker放置在同一层级。

/docker
  -/wordpress       <-- 運用時に必要なものはここへ
    -/wp-content
      - ...
  -/dev             <-- 開発時に使うものをまとめる場所。
    -/wordpress
      -Dockerfile   <--- wp-cliのインストール機能を追加
    -/mysql
      -/docker-entrypoint-initdb.d
        -setup.sql  <--- コンテナの初期化SQL
    -/assets        <---.pugとかwebpack前のアセットなどをここへ
      - ...
  -docker-compose.yml
package.json

Docker Compose:

version: '3.6'

services:
   db-for-wp:
     image: mysql:5.7
     container_name: db-for-wp
     ports:
       - "3306:3306"
     volumes:
      - db-for-wp-data-volume:/var/lib/mysql
      - ./dev/mysql/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
     environment:
       MYSQL_ROOT_PASSWORD: password
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: password

   wp:
     build: ./dev/wordpress
     depends_on:
       - db-for-wp
     container_name: wp
     ports:
       - "8080:80"
     volumes:
      - ./wordpress/wp-content:/var/www/html/wp-content
     environment:
       WORDPRESS_DB_HOST: db-for-wp:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: password

volumes:
     db-for-wp-data-volume:

重要的Docker文件

FROM wordpress:5

#wp-cliのインストール
RUN curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \
     && chmod +x wp-cli.phar \
     && mv wp-cli.phar /usr/local/bin/wp \
     && wp --info

WP-CLI命令

用wp-cli进行初始化。
在Dockerfile的RUN中执行是一个聪明的选择,
但是如果首先执行,可以通过Git管理的文件和稍后提到的setup.sql文件来重新创建,所以暂时手动操作。
由于容器通常以root身份进入,请不要忘记使用–allow-root选项。

# WordPressセットアップ
wp core install --url='http://localhost:8080' --title='新規サイト' --admin_user='admin_user_name' --admin_password='admin_pass' --admin_email='wp@example.com' --allow-root 

# 日本語化
wp language core install ja --activate --allow-root 

# タイムゾーンと日時表記
wp option update timezone_string 'Asia/Tokyo' --allow-root 
wp option update date_format 'Y-m-d' --allow-root 
wp option update time_format 'H:i' --allow-root

# プラグインの削除
wp plugin delete hello.php --allow-root

# プラグインのインストール
wp plugin install wp-multibyte-patch --activate --allow-root 
#wp plugin install jetpack --activate --allow-root
#wp plugin install backwpup --activate --allow-root
#wp plugin install siteguard --activate --allow-root

# 新規テーマのひな型を追加してアクティブ化(new-themeは任意のテーマ識別子)
wp scaffold _s new-theme --theme_name="新規テーマ" --author="制作者名" --allow-root
wp theme activate new-theme --allow-root

# テーマの削除
wp theme delete twentyseventeen --allow-root
wp theme delete twentyeighteen --allow-root
wp theme delete twentynineteen --allow-root
wp theme delete twentytwenty --allow-root
wp theme delete twentytwentyone --allow-root

以下为可选的方法:
※通过在主题的functions.php中更改设置值
使用add_action(‘after_setup_theme’, ‘my_theme_after_setup’);更容易理解和合理。

###メディア: 生成しない画像サイズを0にする

# thumbnail: : 標準 150*150 & thumbnail_crop=1 
# wp option set thumbnail_size_w 0 --allow-root

# medium: 標準 640*640
wp option set medium_size_w 0 --allow-root

# medium_large: 標準768*768
wp option set medium_large_size_w 0 --allow-root

# large: 標準1024*1024
# wp option set large_size_w 0 --allow-root

### 生成するメディアのサイズ指定
# wp option set thumbnail_crop 1 --allow-root
wp option set thumbnail_size_w 300 --allow-root
wp option set thumbnail_size_h 300 --allow-root
wp option set large_size_w 1160 --allow-root
wp option set large_size_h 1160 --allow-root

关于创建DB容器时的初始化SQL

在交付之前或者进行确认的时候适当地进行dump,这样在首次运行docker-compose up时才会反映其内容。
它可以被Git管理,并且还可以作为交付的初始化SQL使用。

mysqldump -u root -p wordpress > /docker-entrypoint-initdb.d/setup.sql

如果容器已经创建了,您可以通过执行以下命令删除卷容器:
docker volume remove [卷容器的名称]
(例如,docker volume remove db-for-wp-data-volume)
这样,在下次执行docker-compose up命令时,setup.sql文件中的内容将被应用。

bannerAds