「PHP環境」、「WordPress」をDockerで構築(初心者)
Contents
PHP環境をDockerで構築する手順
1)Dockerfileの作成
- プロジェクトディレクトリ内に
「Dockerfile」
を作成します。 - PHPのイメージをベースにすることで、PHP環境を構築します。
▽Dockerfile
FROM php:8.0-cli
RUN docker-php-ext-install pdo_mysql
2)docker-compose.ymlの作成
- プロジェクトディレクトリ内に
「Dockerfile」
を作成します。 - 複数のサービスを管理しやすくするために、
docker-compose.yml
ファイルを作成 - このファイル内で、PHPサービスを定義し、ポートやボリュームを設定します。
docker-compose.yml
version: '3'
services:
php:
image: php:7.2-apache
volumes:
- .:/var/www/html
ports:
- 8000:80
container_name: php7.2-trial2
mysql:
image: mysql:5.7
volumes:
- /var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=test
- MYSQL_USER=test
- MYSQL_PASSWORD=test
container_name: mysql5.7-trial2
<コード内容>
PHPサービス
- イメージ:
php:7.2-apache
。PHP 7.2とApacheサーバーを含む公式PHPイメージを使用します。 - ボリューム: ホストの現在のディレクトリ(
.
)をコンテナ内の/var/www/html
にマウントします。これにより、ホストのディレクトリがApacheのドキュメントルートとして機能します。 - ポート: ホストの8000ポートをコンテナの80ポートにマッピングします。これにより、ホストマシンの8000ポート経由でアクセスできるようになります。
- コンテナ名:
php7.2-trial2
。この名前はDocker内でこのコンテナを識別するために使用されます。
MySQLサービス
- イメージ:
mysql:5.7
。MySQL 5.7を含む公式MySQLイメージを使用します。 - ボリューム:
/var/lib/mysql
。これは、MySQLデータを永続化するために使用されるボリュームです。ただし、この定義ではホストのパスが指定されていないため、匿名ボリュームとして作成されます。 - 環境変数:
MYSQL_ROOT_PASSWORD=root
:rootユーザーのパスワードをroot
に設定します。MYSQL_DATABASE=test
:起動時にtest
データベースを作成します。MYSQL_USER=test
:test
ユーザーを作成します。MYSQL_PASSWORD=test
:test
ユーザーのパスワードをtest
に設定します。
- コンテナ名:
mysql5.7-trial2
。この名前はDocker内でこのコンテナを識別するために使用されます。
3)ビルドと実行
Dockerfileとdocker-compose.ymlが用意できたら、コマンドを使用してイメージをビルドし、コンテナを起動します。
docker-compose up --build
コマンドを実行すると、Dockerは「Dockerfile」
に基づいてイメージをビルドし、「docker-compose.yml
」に従ってコンテナを起動します。これにより、PHPが使える環境が構築されます。
▽「docker desktop」の画面より確認ができました
WordPress環境をDockerで構築
1)作業フォルダを作成
2)1)内に「docker-compose.yml」を作成
version: "3.7"
services:
db:
image: mysql:8.0
container_name: mysql8
restart: always
environment:
MYSQL_ROOT_PASSWORD: password # rootユーザのパスワード
MYSQL_DATABASE: db_local # WordPress用データベース名
MYSQL_USER: wp_user # WordPress用データベース接続ユーザ名
MYSQL_PASSWORD: password # WordPress用データベース接続パスワード
WordPress:
image: wordpress:latest
container_name: wordpress
restart: always
depends_on:
- db
ports:
- 10090:80
environment:
WORDPRESS_DB_HOST: db:3306 # データベースサーバ名:ポート番号
WORDPRESS_DB_USER: wp_user # WordPress用データベース接続ユーザ名(dbの内容に合わせる)
WORDPRESS_DB_PASSWORD: password # WordPress用データベース接続パスワード(dbの内容に合わせる)
WORDPRESS_DB_NAME: db_local # WordPress用データベース名(dbの内容に合わせる)
WORDPRESS_DEBUG: 1 # デバッグモードON
volumes:
- ./html:/var/www/html
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
container_name: phpmyadmin_ingrid
restart: always
depends_on:
- db
ports:
- 10099:80
3)作業ディレクトリにて下記コマンド
docker-compose up -d
ボリュームマウントの概念
Dockerコンテナは、デフォルトで隔離された環境を提供します。これにより、コンテナ内のファイルシステムはホストマシンから独立しています。しかし、多くの場合、ホストマシン上のファイルやディレクトリをコンテナ内で直接利用したい場合があります。このような場合にボリュームマウントが使用されます。
ボリュームマウントの構文は以下の通りです
volumes:
- <ホストのパス>:<コンテナのパス>
多少時間がかかるかもしれません。
4)「Docker Desktop」で確認
参考サイト
【入門】Dockerで環境構築|WordPress環境をローカルPCに作ろう!
https://coosy.co.jp/blog/docker-environment