本記事ではdockerを使って、ローカルで動作するwordpress環境を作成します。
対象
- なるべく簡単にwordpressの環境を作りたい人
- ローカルで動くwordpressの環境を作りたいひと
- 既存のwordpress開発環境をdockerで作成し直したい人
前提条件
docker for desktopインストール済み
または
dockerとdocker composeコマンドが実行できること
手順概要
- ファイル&ディレクトリ作成
- docker-compose.ymlを記述
- コンテナの作成
- wordpressの初期設定
ファイル&ディレクトリ作成
適当なディレクトリに以下のファイルとディレクトリを作成してください。
.
├── docker-compose.yml
└── wordpress
docker-compose.ymlを記述
docker-compose.ymlに作成するコンテナの情報を記述します。環境変数などは、自分用に変更して使用してください。また、mysqlとwordpressのバージョンは自分に合ったものを使用してください。
基本的に最新のものを使用で問題ないとは思いますが、latestはやめましょう。他環境との整合性が取れなくなる可能性があります。
version: "3" #docker-composeのバージョン
services:
db: #wordpressで使用するmysqlコンテナを作成
name: wordpress_db
image: mysql:5.7
volumes: #データを永続化させるためにローカルのファイルにマウント
- db_data:/var/lib/mysql
restart: always
environment: #mysqlの環境変数(自由に設定する)
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: wordpress
MYSQL_USER: user
MYSQL_PASSWORD: password
wordpress: #wordpressを実行するコンテナを作成
name: wordpress_server
depends_on: #依存関係を記述
- db
image: wordpress:latest
ports: #ポート番号を指定。他で使っている場合は左側を変更
- "8080:80"
restart: always
volumes: #データを永続化させるためにローカルのファイルにマウント
- ./wordpress/:/var/www/html
environment: #wordpressの環境変数(上で作成したDBを指定)
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: user
WORDPRESS_DB_PASSWORD: password
volumes:
db_data:
docker-composeの簡単な解説
全くわらかない場合は以下がおすすめです
docker-compose.ymlの書き方について解説してみた
重要なポイント
- 環境変数を設定
mysqlのDB情報、wordpressに接続するDB情報を各コンテナのenvironmentで記述してします。
そのため、ローカルではないデータベースを使用したい場合は、ここを書き換えるだけで大丈夫です。 - データの永続化
コンテナを再作成してもデータが消えないように、mysql・wordpressともにローカルのファイルにマウントしています。
コンテナの作成
docker-compose.ymlがあるディレクトリで以下のコマンドを実行します。
docker-compose up -d
初回起動時は時間がかかりますが、ターミナルに以下のようなメッセージが表示されると作成完了です。
何かエラーが出た場合は修正してください。大抵ググると同じ悩みを経験した人がいます。
Status: Downloaded newer image for wordpress:5.7.1-php7.4-apache
Creating wordpress-local_db_1 ... done
Creating wordpress-local_wordpress_1 ... done
wordpressの初期設定
http://localhost:8080/にアクセスします。
すると以下のような画面が表示されますので、表示にしたがって設定を行いましょう。
コンテナ作成直後は、エラーが表示されるかもしれません。その場合は時間を空けてアクセスし直してください。
実行後のディレクトリ構成
以下のようにwordpressディレクトリ下にファイルが作成されています。
テーマなどを自作したい場合は、以下を追加・修正することでコンテナの環境にも反映されます。
.
├── docker-compose.yml
└── wordpress
├── index.php
├── license.txt
├── readme.html
├── wp-activate.php
├── wp-admin
├── wp-blog-header.php
├── wp-comments-post.php
├── wp-config-docker.php
├── wp-config-sample.php
├── wp-config.php
├── wp-content
├── wp-cron.php
├── wp-includes
├── wp-links-opml.php
├── wp-load.php
├── wp-login.php
├── wp-mail.php
├── wp-settings.php
├── wp-signup.php
├── wp-trackback.php
└── xmlrpc.php
この環境のメリット&デメリット
- (+)ローカルでソースコードを変更できる
- (+)簡単に環境が作成できる
- (ー)本番環境用に環境変数などを変更する必要がある