wordpress + nginx + mysql環境をDockerで

動作環境
環境 | バージョン |
---|---|
mac | macOS Catalina 10.15.1 |
Docker Desktop for mac | 2.1.0.4 |
概要
wordpress環境を、容量の大きなmampではなく、現在勉強中のDockerで構築してみました。
ディレクトリ構成
.
├── docker-compose.yml
└── nginx
└── nginx.conf
docker-compose.yml
version: '3'
services:
wp-db:
image: mysql:5.7
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
volumes:
- storage-mysql:/var/lib/mysql
ports:
- "3306:3306"
environment:
MYSQL_DATABASE : wordpress # WORDPRESS_DB_NAMEと合わせる
MYSQL_ROOT_PASSWORD: root # ルートパスワード
MYSQL_USER : wpuser # WORDPRESS_DB_USERと合わせる
MYSQL_PASSWORD : pass # WORDPRESS_DB_PASSWORDと合わせる
TZ : 'Asia/Tokyo'
wp:
image: wordpress:php7.3-fpm
volumes:
- ./wp:/var/www/html
expose:
- "9000"
environment:
WORDPRESS_DB_HOST : wp-db # mysqlコンテナを指定
WORDPRESS_DB_USER : wpuser # MYSQL_USERと合わせる
WORDPRESS_DB_PASSWORD : pass # MYSQL_PASSWORDと合わせる
WORDPRESS_DB_NAME : wordpress # MYSQL_DATABASEと合わせる
WORDPRESS_TABLE_PREFIX: basis
links:
- wp-db
wp-nginx:
image: nginx:1.17
ports:
- "80:80"
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
- ./wp:/var/www/html
links:
- wp # wordpress起動後でないとnginxがnot foundで落ちる
volumes:
storage-mysql:
nginx.conf
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
charset UTF-8;
server {
listen 80;
server_name _;
root /var/www/html;
index index.php;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(\.+)$;
fastcgi_pass wp:9000; # wordpressコンテナを指定する
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
}
コンテナの起動とセットアップ
docker-compose up -d --build
http://localhostにアクセスして、以下が表示されれば、成功です。
日本語を選択して、続行。
サイト情報を設定して、wordpressをインストール。
再度、http://localhostに接続して、wordpressが動いていることを確認。