- Wordpress公式のDockerイメージを元にWordpress環境を作ろうとしたら、思った以上に色々引っかかったのでメモを残しておきます。
-
docker-compose
を使って、wordpressコンテナとMySQLコンテナを連携するよくあるパターンを使います。
コマンドラインだけで立ち上げる場合
docker-compose
を使う場合
使ったdocker-compose.yml
- 上のポイントが要なのですが、とりあえず成功した例です。
version: '3'
services:
wordpress:
hostname: wp
container_name: wp
image: wordpress:4.9.7-apache
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db # これを下のDBのホスト名と一致させること!!
WORDPRESS_DB_USER: wp_user
WORDPRESS_DB_PASSWORD: password
db: # これを上のWORDPRESS_DB_HOSTと一致させること!
hostname: wp_db
container_name: wp_db
image: mysql:5.7 # バージョンに注意!
volumes:
- wp_db_cache57:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: wordpress
MYSQL_USER: wp_user
MYSQL_PASSWORD: password
volumes:
wp_db_cache57:
external: true
ポイント
コンテナのバージョンを意図的に指定する。
- 特にMySQLのバージョンを5.7にすること。
- 現在(2018/07/21)では、
mysql:latest
はバージョンが5.8になっているので、latestでやってしまうと、コンテナが立ち上がりこそすれ、wordpressの画面がいつまでたっても出てこないので注意。 - ちなみに
wordpress:4.9.7-apache
は現状に置けるwordpress:latest
と同義です。
特定の環境変数を指定する。
- 特に大事なのは以下の三つ。
環境変数 | 役割 |
---|---|
WORDPRESS_DB_HOST | 連携するDBのホスト名を入れる。DBのホスト名と同じにすること!(なお、デフォルトではmysqlという値が入っているため、ホスト名をmysqlにするのもあり) |
WORDPRESS_DB_USER | wordpressのDBの所有者名。MYSQL_USERと一致させること。 |
WORDPRESS_DB_PASSWORD | ↑のパスワード。MYSQL_PASSWORDと一致させること。 |
まとめ
- とりあえず上のポイントを守ってcomposeすれば立ち上がります!