创建一个包含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文件中的内容将被应用。