🌥
DockerでWordPress環境を構築して、データをローカルに保存する
やりたいこと
- DockerでWordPress環境を構築
- wp-contentsとSQLをローカルに保存する
DockerでWordPress環境を構築
まずはdocker-compose.yml
を作成します。
このファイルがWordPressを起動し、データ保存のためのMySQLインスタンスを生成します。
docker-compose.yml
version: '3'
services:
# データベース
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
# 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:
以下コマンドでイメージを作成実行します。
% docker-compose up -d
wp-contentsとSQLをローカルに保存する
と、チュートリアルなんかだと上記のコードで紹介されてます。
ところがそのままだと各種データがコンテナ内に生成されるので扱いにくいです。
そこで、/wp-contentsとSQLをローカルに保存するように以下のように修正します。
docker-compose.yml
version: '3'
services:
db:
image: mysql:5.7
volumes:
- ./db/mysql:/var/lib/mysql # マウントするローカルディレクトリを指定
ports: # ポートを指定し、外部から接続させる
- "3306:3306"
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- ./html:/var/www/html # マウントするローカルディレクトリを指定
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
# phpmyadminも用意してSQLを触れるようにしてます
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
restart: always
depends_on:
- db
ports:
- 8888:80
volumes:
db_data:
これで/dbと/html以下にそれぞれ保存されるようになります!(やったー)
最後に
_人人人人人人人人人人人人_
> Docker完全に理解した <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
というレベルなので、引き続き精進します...
Discussion