docker-composeでWordPressの開発環境をサクッと作成

Docker

WordPressの開発環境をDockerで作成するためのメモ。

やりたいこと
  • プラグインやテーマをコンテナに入らなくてもホストから編集したい
  • 最大アップロード容量を増やしたい
  • phpMyAdminを使ってDBを覗きたい

ディレクトリ構成

├── docker-compose.yml
└── wordpress
    ├── Dockerfile
    └── customphp.ini

ファイル内容

version: '3'

services:
  db:
    image: mysql:5.7
    container_name: wp_mysqld
    volumes:
      - ./db:/var/lib/mysql
    environment:
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
      MYSQL_DATABASE: wp_db
      MYSQL_USER: wp_dbuser
      MYSQL_PASSWORD: wp_password

  web:
    depends_on:
      - db
    build: ./wordpress
    container_name: wp_template
    volumes:
      - ./html:/var/www/html
    ports:
      - "5000:80"
    environment:
      WORDPRESS_DB_HOST: wp_mysqld:3306
      WORDPRESS_DB_NAME: wp_db
      WORDPRESS_DB_USER: wp_dbuser
      WORDPRESS_DB_PASSWORD: wp_password
      WORDPRESS_DEBUG: 1
    dns: 8.8.8.8

  phpmyadmin:
    image: phpmyadmin:latest
    container_name: "wp_phpmyadmin"
    ports:
      - "8000:80"
    environment:
      PMA_HOSTS: wp_mysqld
      PMA_USER: wp_dbuser
      PMA_PASSWORD: wp_password

docker-compose.ymlファイルは特に特筆すべき点は無し。たまにDNSルックアップができない状態になることがあるため、GoogleのDNSを指定している。

dns: 8.8.8.8
upload_max_filesize = 1000M
post_max_size = 1002M

変更したいphp.iniのディレクティブだけを記入したファイルを作成。ここでは最大アップロード容量を1GBに設定。

FROM wordpress:latest
ENV TZ Asia/Tokyo
WORKDIR /var/www/html
COPY ./customphp.ini $PHP_INI_DIR/conf.d/

使い方

前提条件として、dockerコマンドとdocker-composeコマンドが使えるようになっているものとする。

docker-compose.ymlの置いてあるディレクトリで下記コマンドを実行

docker-compose up -d --build

ビルドが完了したら「http://localhost:5000/」へアクセスしてWordpressの初期設定を行う。

ホストのhtmlディレクトリ配下にWordpressのソースが入るのでそこから開発できる。

特定のWordpressやPHPのバージョンを使いたい場合はDockerfileの「wordpress:latest」タグを変更する。どんなタグが使えるかはDocker Hubの公式イメージ検索から調べられる。

phpMyAdminは「http://localhost:8000」からアクセス可能。

この記事を書いた人

PHPが好物な個人開発プログラマ。フリーランスエンジニアとしてWebサービス作ったりしてます。15年の経験を生かしてMENTAでメンターもやってます。WordPressやPHPでお困りのことがあればご相談に乗りますのでDMください。

Follow on SNS
DockerWordpress
SOHO MIND

Comments

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