【開発環境 #7】WordPress開発環境を構築する【WSL2,Docker】
DockerでWordPress開発環境を構築していきます。
WSL2 + Docker の記事一覧
Docker イメージの選定
Docker Hubへアクセスし、使用したいイメージ名で検索します。
WordPress
- Docker Hubの上部検索フォームでWordPressと検索
- 検索結果からWordPress ✓Official Imageを選択
- タブメニューのTagsをクリックし任意のバージョンを選択する
- 今回はphp7.4-apache
- 画面に表示されているwordpress:php7.4-apacheが使用するイメージ名
phpMyAdmin
WordPressと同じです。今回は最新版であるphpmyadmin:latestを使用します。
MariaDB
検索方法はWordPressと同じです。今回はmariadb:10.5を使用します。
ビルドコンテキスト
Ubuntuの/home/dev/wpをビルドコンテキストとします。最終的に以下の構成になります。
home/dev/wp
|-- docker/
| `-- php-apache/
| |-- Dockerfile
| `-- php.ini
|-- src/
`-- docker-compose.yml
Dockerfile
コンテナwordpress:php7.4-apacheで、ComposerとWP-CLIの使用したいので、マルチステージビルドを使用したDockerfileを作成します。
FROM wordpress:php7.4-apache
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
COPY --from=wordpress:cli-php7.4 /usr/local/bin/wp /usr/local/bin/wp
COPY ./php.ini /usr/local/etc/php/conf.d/z-php.ini
RUN pecl install xdebug-3.1.1 && \
docker-php-ext-enable xdebug && \
rm -r /tmp/pear
php.ini
php.iniのコピー先は、コンテナ先で設定が上書きされるのを防ぐために、このような記述にしています。(conf.d/内の*.iniファイルが、アルファベット順で上書き結合されるため)
docker-compose.yml
version: '3.8'
services:
web:
build: ./docker/php-apache
ports:
- 8080:80
- 9003:9003
volumes:
- ./src:/var/www/html
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DEBUG : 1
WORDPRESS_CONFIG_EXTRA: |
define('SAVEQUERIES', true);
define('WP_POST_REVISIONS', false);
define('WP_DEBUG', true);
define('_PREFIX', 'my_');
tty: true
stdin_open: true
depends_on:
- db
phpmyadmin:
image: phpmyadmin:latest
ports:
- 8081:80
environment:
PMA_HOST: db:3306
PMA_USER: wordpress
PMA_PASSWORD: wordpress
depends_on:
- db
db:
image: mariadb:10.5
ports:
- 3306:3306
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-time-zone=Asia/Tokyo
volumes:
- db_data:/var/lib/mysql
environment:
MARIADB_ROOT_PASSWORD: password
MARIADB_DATABASE: wordpress
MARIADB_USER: wordpress
MARIADB_PASSWORD: wordpress
TZ: Asia/Tokyo
volumes:
db_data:
環境変数 (environment)
environmentのWORDPRESS_DB_HOSTなどの意味は、Docker Hub > WordPressイメージのHow to use this imageに詳しく書かれています。他のイメージも同様です。
コンテナ作成&起動
$ docker-compose up -d
Creating network "php_default" with the default driver
Creating volume "php_db_data" with default driver
.....
Creating php_db_1 ... done
Creating php_web_1 ... done
Creating php_phpmyadmin_1 ... done
動作確認
http://localhost:80にアクセスで、docker-compose.ymlで指定した通り、すでにWordPressのインストールが済んでいるのが確認できました。
終わりに
前回とほぼ同じ内容でしたが、無事にWordPressの開発環境が整いました。