前回Dockerをインストールしたので今回はWordPressを構築していきたいと思います。
前回の記事はこちら。
この記事は以下の手順をもとに構築していきます。
https://docs.docker.jp/compose/wordpress.html
環境はWindowsです。
準備
まず、任意のフォルダの中にdocker-compose.yml ファイルを作成します。
今回はWordPressというフォルダを作ってその中にファイルを作成しました。
ファイルには以下を記述します。
version: '3' services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: wordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: - db image: wordpress:latest ports: - "8000:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress volumes: db_data:
プロジェクトの構築
今回はWordPressというフォルダの中に作ったので、WordPressフォルダの上「Shift」を押しながら右クリックし、PowerShellを起動します。
以下を実行します。
docker-compose up -d
こんな感じの画面が出て、実行が終わったらブラウザから http://localhost:8000 にアクセスしてください。
するとWordPressのインストール画面が出てきます。
手順に従い、インストールしてください。
この画面で完了です。
お疲れ様ででした!
特に設定項目もなくわりと簡単にいけました!
開発用に環境をごにょごにょ
このままではWordPressのファイルとデーターベースの操作がやりにくいので、ファイルとデータベースを使いやすくします。
WordPressのファイルをWindowsにマウントする
テーマやプラグインを直接扱えるようにするには、コンテナ側で構築された環境とホスト側のディレクトリをマウントします。
まず作業フォルダ内にWordPressファイル群がマウントされるサブフォルダを作成します。
今回は”wp-content”フォルダを作成します。
そしてComposeファイルのwordpress:配下に以下を定義します。
volumes: - ./wp-content:/var/www/html/wp-content
記載済みymlファイルの内容については後述
データベース用にphpMyAdminを使えるようにする
データベースを操作するのにphpMyAdminを使います。
以下の定義をComposeファイルのservices:に追加します。
phpmyadmin: depends_on: - db image: phpmyadmin/phpmyadmin environment: PMA_HOST: db restart: always ports: - "8080:80"
この定義を含めて起動後にブラウザでlocalhost:8080にアクセスするとphpMyAdminのログイン画面が表示されます。
ログインには以下の “wordpress” の部分を使用してください。
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
今回はyml内容を以下のように記載しています。
version: '3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
- ./wp-content:/var/www/html/wp-content
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin
environment:
PMA_HOST: db
restart: always
ports:
- "8080:80"
volumes:
db_data:
最後に以下を実行して完了なのですが、追記したマウントが場合はうまくいきませんでした。
docker-compose up -d
マウントはいろいろ問題があるようです。
今回は一旦コンテナを削除して新しく作ったymlファイルから再度コンテナを作成し、docker-compose up -dをするとうまくいきました。
Windowだけかな?
マウントするものについては最初にきちんとやっておかないと後で面倒になりそうです。お気をつけて。