Dockerで作ったWordPressが遅い問題の解決法

IT・プログラミング

DockerでWordPress環境をローカルに作成する方法は以下の記事で紹介しました。

しかし、この方法だと、結構操作が思いです。

原因

まず、動作が遅い鯨飲はデータのマウント処理にあります。

volumes:
 - ./wp-data:/var/www/html

のように書くとかなりのファイルが同期されることになるので、反映に時間がかかり、かなり動作が遅くなります。

解決策

マウント先を絞る

必要なフォルダのみマウントすることで、動作を高速化できます。

例えば次のようにテーマ部分のみマウントするように変更するなどです

volumes:
 - ./wp-data/wp-content/themes/mytheme:/var/www/html/wp-content/themes/mytheme

Cacheを使う

volumes:
 - ./wp-data:/var/www/html:cached

:cachedを使うことで、データ反映前に読み込みを行えるようになるので、この方法でも高速化が可能です。

docker-composeの例

以下のようなdocker-composeファイルである程度サクサク編集できます。

version: "3"
services:
  db:
    image: mariadb:10.4
    container_name: "wordpress-db"
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

  wordpress:
    image: wordpress:latest
    container_name: "wordpress-wp"
    volumes:
      - ./wp-data/wp-content/themes:/var/www/html/wp-content/themes
      - ./wp-data/wp-content/plugins:/var/www/html/wp-content/plugins
    ports:
      - "8060:80"
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    ports:
      - "8070:80"
    environment:
      PMA_HOST: db:3306
      MYSQL_ROOT_PASSWORD: wordpress


さらに高速化したい場合

さらに高速化するには、マウントを使わず、コードはgithubで管理するという方法があります。
詳しくは、以下記事で紹介しています。

コメント

タイトルとURLをコピーしました