DockerでWordPressの環境を構築する(Windows)
現在進行中のプロジェクトでDockerでWordpress環境の構築をすることがあったので方法を記します。
Dockerとは?
DockerとはDocker社が開発しているコンテナ型の仮想環境を作成し共有するためのプラットフォームです。
ミドルウェアのインストールや各種環境設定を文字コードとして管理するのでチーム内のだれもが同じ環境で作業することができます。
Docker for Windowsのインストール
Dockerをインストールしていない人はダウンロードページ内 Download for WindowsリンクよりインストーラーをダウンロードしてDockerをインストールしてください。
dockercompose.ymlファイルを作成する。
Dockerで環境を構築する準備として環境の情報が記載されたdockercompose.ymlファイルを作成しましょう。
下記設定内容でmysql,phpmyadmin,wordpressの3つのコンテナが構築されます。
version: '3'
services:
mysql: #コンテナ名
image: mysql:5.7
volumes:
- ./mysql:/docker-entrypoint-initdb.d
- ./mysql/db-data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=wordpress_db
phpmyadmin: #コンテナ名
image: phpmyadmin/phpmyadmin
environment:
- PMA_ARBITRARY=1
- PMA_HOST=mysql
- PMA_USER=root
- PMA_PASSWORD=password
links:
- mysql
ports:
- 1234:80
wordpress: #コンテナ名
image: wordpress:latest
depends_on:
- mysql
ports:
- 80:80
volumes:
- ./wordpress:/var/www/html/
environment:
- WORDPRESS_DB_HOST=mysql
- WORDPRESS_DB_PASSWORD=password
- WORDPRESS_DB_NAME=wordpress_db
各種入力情報の詳細
version | インストールされているDockerComposeのバージョンを記述 |
---|---|
コンテナ名 | コンテナ名は各コンテナから見た時のHOST名としても扱えるという特性があります。 |
image | 指定したバージョンで各環境にインストールされます。 |
ports | 各環境のport番号を指定可能 |
volumes | 左辺がbuild後に生成されるフォルダとなり右辺の環境パスと同期します。 |
environment | 各種環境変数 |
作業フォルダ内にdockercompose.ymlが存在する状態で下記コマンドを入力することで環境を構築、また起動できます。
//環境の構築
$ docker-compose build
//コンテナの構築、及び起動
$ docker-compose up
//コンテナの停止
$ docker-compose down
動作確認
docker-compose upが実行されているタイミングでhttp://localhostにアクセスしてみると
wordpressの初期インストール画面が表示されるかと思います。
また、http://localhost:1234へアクセスすると
phpmyadminの管理画面が表示されます。
また、コンテナ内をコマンドから操作する際は
docker exec -it コンテナ名 bash
と入力することでコンテナ内でコマンドを実行できます。
今まで、環境構築や環境の違いで思わぬ時間を取られてしまうことがたびたび発生していたので、
Dockerで誰でも簡単に環境を構築でき、
チーム内での環境の差異がない状態で作業を進めることができるというのは、
なかなかのメリットになるかと思います。