DockerでWordPress (Ubuntu)
やっとDockerでWordpressが動いたので、そのメモ。
docker-compose.yml
version: '3'
services:
db:
image: mysql:5.7
volumes:
- ./db_data:/var/lib/mysql
restart: always
container_name: mysql
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- ./themes/pacific:/var/www/html/wp-content/themes/pacific
links:
- db
ports:
- "8000:80"
restart: always
container_name: wordpress
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes: <== 必要ない(2018.07.04追記)
db_data: <== 〃
driver: local <== 〃
これは、ここのを参考にさせてもらった。
$ docker-compose up
これで、http://localhost:8000/ でwordpressに接続できる。
データの移行
とりあえず、使ったコマンドを忘れないようにメモ。
まず、もとのvccwからデータベースをダンプする。
vccw:$ mysqldump -u wordpress -p wordpress > mysql_dump.sql
ふたつめのwordpressは、データベース名である。
ホストからコンテナに mysql_dump.sql をコピーする。
$ ID=$(docker ps -f name=mysql -q)
$ docker cp mysql_dump.sql $ID:/tmp/mysql_dump.sql
次に、このダンプファイルをdockerコンテナのmysqlに読み込ませる。
$ docker exec -it $ID /bin/bash
mysql:# mysql -u wordpress -p wordpress < /tmp/mysql_dump.sql
このmysqlは、mysqlコンテナに「mysql」という名をつけたのである。
あとは、データベースの中のURLを新しいのに変えるとよい。
wp-cliはうまくいかなかった
これを wp-cli でやろうと思ったのだが、うまくいかなかった。
wp search-replace 旧URL 新URL –skip-columns=guid –allow-root
とやると、データベースの「WordPressがない」と言われたのである。
wordpress という名にしていたからかな。
Search-Replace-DB-masterを使う
そこで、「Search-Replace-DB-master」を使った。
参考サイトは、WordPress移行時にURLをSQLで直接一括置換はダメ! 「Search and Replace for WordPress Databases Script」を使おう である。
ダウンロードしたファイルを解凍したら、フォルダができるから、Wordpressをインストールした一番上のフォルダの中にフォルダごと置く。 に
http://localhost:8000/Search-Replace-DB-master/ にアクセスして、変換をおこなう。
これで、いけてる。
Searchうんぬんフォルダは、削除しておく。
プラグインについては、ひとつひとつインストールしなおした。
Dockerfileに記述するやり方があるようだが、それはまた今度にする。
DockerでのWordpressは、本当に早い。VCCWとは比べ物にならない。
カテゴリー: Docker, memo, wordpress
タグ: Docker, wordpress
カウント: 203