
Dockerでお手がるWordPress実行環境構築
バックアップしてあったWordPressの中身が必要だったのでDockeでWordPress実行環境の構築と復元のメモ。
Windwos10にDocker Desktop for Windowsをインストール済みで、復元元のWordPressフォルダとsqlファイルのダンプが存在する前提です。
DockeでWordPress実行環境構築
手順は基本的に公式サイトの内容でOK
https://docs.docker.jp/compose/wordpress.html
docker-compose.ymlを作成
version: '3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: [rootpassword]
MYSQL_DATABASE: [databasename]
MYSQL_USER: [databaseuser]
MYSQL_PASSWORD: [databesepassword]
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: [databasename]
WORDPRESS_DB_USER: [databaseuser]
WORDPRESS_DB_PASSWORD: [databesepassword]
volumes:
db_data:
[xxxxxxx]はバックアップ元の情報にあわせて記入。
Compose実行
> docker-compose up -d
この段階でコンテナが作成されてインスタンスが起動しているはず、webブラウザでhttp://localhost:8000を開くとWPの初期設定画面が出るハズ。
新規インストールならこのまま設定を行えばWordPress実行環境の完成です。
続いて元データの復元作業に入ります。
その前にこのあと生成されたコンテナ名が必要になるので確認しておく。
APP名_wordpress_xとAPP名_db_xといった感じのコンテナ名になっているハズ。
vimをインストール
viもvimも入っていないハズなのでvimをインストール。
> docker exec -it [wordpress_container] /bin/bash
# apt-get update
# apt-get install vim
> docker exec -it [wordpress_container] /bin/bash
でコンテナに入れます。
[wordpress_container]は確認したコンテナ名に入れ替えてください。
DBをリストア
コンテナにダンプしたsqlファイルを転送
> docker cp -rf [wordpressdump].sql [wordpress_db_container]:/home/[wordpressdump].sql
[wordpressdump].sqlは実際のファイル名に合わせてください。
コンテナに入ってDBをリストア
> docker exec -it [wordpress_db_container] /bin/bash
# cd /home
# mysql -u [databaseuser] -p[databesepassword] -D [databasename] < [wordpressdump].sql
バックアップファイルの復元
wp-config.phpは新規インストールした方を使用するのでバックアップを取ります。
> docker exec -it [wordpress_db_container] /bin/bash
# cp wp-config.php _wp-config.php
Windowsからバックアップファイルをコンテナに転送
> docker cp [wordpress_backup_dir] [wordpress_db_container]:/var/www/html
wp-config.phpをリストア
> docker exec -it [wordpress_container] /bin/bash
# cp _wp-config.php wp-config.php
WordPressのURLを変更
DBに元サイトのURLが書き込まれているハズなので、これをローカル環境にあわせて書き換え
> docker exec -it [wordpress_db_container]_1 /bin/bash
# mysql -u [databaseuser] -p[databesepassword] -D [databasename]
UPDATE wp_options SET option_value = 'http://localhost:8000/' where option_name IN ('home','siteurl');
homeとsiteurlの内容を確認
SELECT * FROM wp_options WHERE option_name IN ('home','siteurl');
homeとsiteurlの内容が書き換わっていれば完了。