DockerでWordPressを手軽に動かす

WordPressを自分のPC上で動かします。Dockerを使えば簡単に起動できますので、手順を簡単に記載します。(Dockerはインストールしてある前提です)
docker-compose.yml
ファイルの作成
下記の内容で任意のフォルダ内に、docker-compose.yml
を作成します。dockerHubの内容を参考にしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | version: '3.1' services: wordpress: image: wordpress restart: always ports: - 8080 : 80 environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: exampleuser WORDPRESS_DB_PASSWORD: examplepass WORDPRESS_DB_NAME: exampledb volumes: - wordpress_data : /var/www/html db: image: mysql : 5.7 restart: always environment: MYSQL_DATABASE: exampledb MYSQL_USER: exampleuser MYSQL_PASSWORD: examplepass MYSQL_RANDOM_ROOT_PASSWORD: '1' volumes: - db_data : /var/lib/mysql volumes: wordpress_data: db_data: |
※下記のエラーに該当する場合、docker-compose.yml
を修正します。
! db The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
対応するDockerイメージが存在しないことを示しているエラーです。
特に古いバージョンのイメージ(例えば mysql:5.7
)は、ARM64アーキテクチャでのサポートがない可能性があります。そのためmysql8.0
を指定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | version: '3.1' services: wordpress: image: wordpress : latest platform: linux/arm64/v8 restart: always ports: - "8080:80" environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: exampleuser WORDPRESS_DB_PASSWORD: examplepass WORDPRESS_DB_NAME: exampledb volumes: - ./wordpress_data : /var/www/html db: image: mysql : 8.0 platform: linux/arm64/v8 restart: always environment: MYSQL_DATABASE: exampledb MYSQL_USER: exampleuser MYSQL_PASSWORD: examplepass MYSQL_RANDOM_ROOT_PASSWORD: '1' volumes: - ./db_data : /var/lib/mysql volumes: wordpress_data: db_data: |
コンテナの起動
1 2 3 4 5 6 7 8 9 | % docker-compose up -d ... ... [+] Running 5 /5 <img draggable= "false" role= "img" class= "emoji" alt= " src= "https://s.w.org/images/core/emoji/15.0.3/svg/2714.svg" > Network wordpress_default Created 1.7s <img draggable= "false" role= "img" class= "emoji" alt= " src= "https://s.w.org/images/core/emoji/15.0.3/svg/2714.svg" > Volume "wordpress_wordpress_data" Created 0.1s <img draggable= "false" role= "img" class= "emoji" alt= " src= "https://s.w.org/images/core/emoji/15.0.3/svg/2714.svg" > Volume "wordpress_db_data" Created 0.1s <img draggable= "false" role= "img" class= "emoji" alt= " src= "https://s.w.org/images/core/emoji/15.0.3/svg/2714.svg" > Container wordpress-wordpress-1 Started 26.2s <img draggable= "false" role= "img" class= "emoji" alt= " src= "https://s.w.org/images/core/emoji/15.0.3/svg/2714.svg" > Container wordpress-db-1 Started |
ブラウザで確認する
http://localhost:8080/
にアクセスします。

ここから各種設定に進み、利用開始できます。
テーマをアップロードできないので修正
テーマをアップロードするときに下記のエラーが出ていました。
POST Content-Length of 15575284 bytes exceeds the limit of 8388608 bytes in Unknown
このエラーメッセージは、POSTリクエストのContent-LengthがPHPの設定で許可されている最大値を超えていることを示しています。
この場合、アップロードしようとしているWordPressのテーマのサイズが、PHPの設定で許可されている最大POSTサイズを超えているようです。
この問題を解決するには、php.ini
ファイルの post_max_size
の値を増やす必要があります。
php.ini
の作成
例として64Mを指定しました。
1 2 | post_max_size = 64M upload_max_filesize = 64M |
docker-compose.yml
を修正
php.iniの記述を追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | ... ... services: wordpress: image: wordpress restart: always ports: - 8080 : 80 environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: exampleuser WORDPRESS_DB_PASSWORD: examplepass WORDPRESS_DB_NAME: exampledb volumes: - wordpress_data : /var/www/html - ./php .ini: /usr/local/etc/php/conf.d/uploads.ini ... ... |
上記修正後、コンテナを再起動します。