Help us understand the problem. What is going on with this article?

Docker上のWordpressでVolumeマウント時にプラグインのインストールや削除に失敗する場合の対処法。

はじめに

Docker上のWordpressにボリュームをマウントすると、プラグインのインストールや削除ができなかったので対処法をメモしておく。
ちなみにDocker Desktop for Macではこの記事の問題は起こらなかった。

環境

  • Ubuntu 18.04
  • Docker 19.03.6
  • Docker Compose 1.25.3
  • Wordpress 5.3.2

状況説明

まず、自分はwp-content/pluginswp-content/uploadsにファイルシステムからマウントした。

問題1 プラグインを削除できない。

下記のようにFTP情報を入力しろと言われる。

問題2 プラグインをインストールできない。

下記のようにディレクトリを作成できないというエラーがでる。
error1.png

対処法

Dockerfileを作成し、ENTRYPOINTでwp-contentwp-content/pluginswp-content/uploadsの所有者を変更してやればいい。

Dockerfile
FROM wordpress:latest

ENTRYPOINT chown www-data:www-data /var/www/html/wp-content /var/www/html/wp-content/plugins /var/www/html/wp-content/uploads && docker-entrypoint.sh apache2-foreground
# chownで対象ディレクトリの所有者変更。
# docker-entrypoint.shでWordpressイメージのENTRYPOINT呼び出し。
docker-compose.yml
version: '3.3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     build: . # Dockerfileからビルド。
     volumes:
        # pluginsとuploadsをマウント。
        - ./plugins:/var/www/html/wp-content/plugins
        - ./uploads:/var/www/html/wp-content/uploads
     ports:
       - "80:80" # SiteGuard等でアクセスエラーが出るのでポートは同じ方が望ましい。
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
volumes:
    db_data: {}

ダウンロード

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした