Wordpressのテーマをカスタマイズするにあたりローカルで作業する必要があったのですが、MAMPの調子が悪く、新しく開発環境を作らねばならなくなりました。 それならばDocker先生にお世話になろうとdocker-composeにてローカル開発環境を構築したのでここに記します。
作業環境
- OS: macOS High Sierra 10.13.2
- Docker Version: 17.09.1-ce-mac42 (21090)
- docker-compose version: 1.17.1, build 6d101fb
作業内容
$ mkdir work_dir
$ cd work_dir
$ vi docker-compose.yml
Note-----------------
以下を記述
version: '2'
services:
db:
image: mysql:5.7
volumes:
- "./.data/db:/var/lib/mysql"
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
ports:
- "3306:3306"
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- ./public_html:/var/www/html
links:
- db
ports:
- "8000:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: wordpress
-----------------------
$ mkdir .data public_html
作業自体は以上となります。
後は解説なので気になる方だけ見てください。
今回作成するコンテナは2つで、dbとwordpressそれぞれが立ち上がるものとなります。 どちらも公式のイメージを用い、
services:
db:
image: mysql:5.7
wordpress:
image: wordpress:latest
コンテナとホストでディレクトリを共有しています。
services:
db:
volumes:
- "./.data/db:/var/lib/mysql"
wordpress:
volumes:
- ./public_html:/var/www/html
また、環境変数は .envを作らず、ベタで書いています。
今回はローカルでのみを想定しているため問題ないかな?という判断ですね。
後は以下のようにコンテナ立ち上げ時の順番を定義(depends_on)して、dbコンテナにwordpressコンテナからリンクを貼り参照できるようにした感じですね。
wordpress:
depends_on:
- db
links:
- db
あまり複雑な事をせず、簡単な設定で仮想環境を立ち上げられるのは本当に便利ですね。 docker-compose感謝です。