幻魔ナイトブログ

主に絵、音楽、プログラミングなどについて書きます。

Docker環境のWordPressが遅いので高速化した話

f:id:MahiroN:20200516125929j:plain

localhost接続なのに遅い・・・

WordPressがどんなものか味見してみたかったのでDocker for macを使用してDocker環境の中にWordpressをインストールしたのだがほとんど使っていなった。

というのも接続が遅かったからだ。
ログインやその他のページ遷移を行った時に1分近くも待たされる。。

ネットワークを介さないのでシステム的な問題のはずだ。
Docker上で動いているWordpressの高速化を行うにした。

原因

ググってみると似たような現象に対する記事が見つかった。

qiita.com

どうやらDocker for macのボリュームマウントに問題があるらしい。
この記事の中で対処方法も書いてあったので今回は自分の環境に合わせて対処を行った。

対処方針

Volumeマウントの停止

原因から考えれば「ボリュームマウントの設定をオフにしてコンテナを作り直せばいい」が1つ問題がある。
テーマやプラグイン、メディアライブラリのデータなどファイルで管理しているものが消えてしまうということだ。

原因で紹介した記事では、docker-compose.yamlのなかのマウント設定を更新の必要があるものだけにし、残りはDockerfileないでビルド時だけ上げるようにしているようだ。

私の場合、味見として数記事テストで作っていただけだし設定周りもテーマとプラグインのインストールくらいしかやっていなかったので消えてしまってもいいという判断のもと

という流れで行った。

ボリュームマウント設定のコメントアウト

まずdocker-compose.ymlのファイルを変えた。
コメントアウトするだけ。

version: '3.3'
 
services:
   wordpress:
     image: wordpress:latest
     depends_on:
       - db
     ports:
       - "18080:80" 
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
     #volumes: <-コメントアウト
     #  - ./html:/var/www/html<-コメントアウト
 
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: root
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress
       
volumes:
    db_data:
コンテナの作り直し

docker-compose.ymlを書き換えたのち、以下のコマンドを実行

docker-compose up -d
テーマとプラグインの再インストール

以前行ったのと同じことをやるだけ。以下の記事を参考にしてテーマとプラグインを再インストール。

mahimahironron.hateblo.jp

結果

図っていたわけではないけれど体感的には - 対処前: 2,30秒〜1分ほどかかっていた - 対処後: 10秒以内にレスポンスが帰ってくる

やってよかった!!

Docker実践ガイド 第2版 (impress top gear)

Docker実践ガイド 第2版 (impress top gear)

  • 作者:古賀政純
  • 発売日: 2019/02/18
  • メディア: 単行本(ソフトカバー)

お問合わせはこちら