【備忘録】Docker上でWordPressの開発を行う際に知っておくと便利だったこと
Docker上でWordPressを動かして開発を行う際に、知っておくと地味に便利だったことがいくつかあるので、備忘録がてら書いていこうと思います。
他にも便利な技があればコメントで教えていただけると幸いです。
なお、ここで書いている内容はすべて下記の ホストからDocker上で動くWordPressのMySQLにアクセスしたい
内に記載した docker-compose.yml
の設定で環境構築した前提で書いています。
ホストからDocker上で動くWordPressのMySQLにアクセスしたい
WordPressをDocker環境で立ち上げる際にまず見ると便利なサイトはこちら
2021年4月時点だと、下記のような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:
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.yml
に貼り付けて、docker-compose up
すれば、これだけでWordPress環境が立ち上がります。
とても便利ですね。
さて、本題ですが、ホスト側からMySQLでアクセスできるようにするには、このdocker-compose.yml
を下記のように書き換える必要があります。
diff --git a/docker-compose.yml b/docker-compose.yml
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -6,6 +6,8 @@ services:
volumes:
- db_data:/var/lib/mysql
restart: always
+ ports:
+ - "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
これで3306ポートでMySQLにアクセスできます。
開発時、データの中身をチェックしながら作業したいときに役立ちます。
Docker上で動いているWordPressのファイルを見たい時
Docker上で動いているWordPressのファイルの中身をターミナル経由で確認したい時、docker exec
コマンドで入ります。
docker exec -it {CONTAINER ID} bash
このコマンドを叩くことで、指定したコンテナ内に新しいbashセッションを作成します。
WordPressに関するファイルは /var/www/html
にあります。
Docker コンテナ上で動いているWordPressのファイルをローカル(ホスト側)にコピーしたい
これを実現するためには docker cp
コマンドを使います。
コマンド名からも想像できる通り、dockerで使える cp
に似た感じのコマンドです。
とは言え、cp
と全く同じというわけではないので、使用前に下記のドキュメントを見ておくことをおすすめします。
下記のコマンドはホスト側のカレントディレクトリにWordPressのhtml
ディレクトリをコピーする例です。
ファイルのバックアップなどの用途で重宝します。
docker cp {CONTAINER ID}:/var/www/html .
# コピーしたファイルの中身を確認
ls -la ./html
ローカル(ホスト側)からDocker コンテナ上で動いているWordPressにファイルをコピーさせたい
こちらも同じく docker cp
コマンドが使えます。
なお cp
コマンドは、同名のディレクトリが存在していても上書きされるので注意が必要です。
docker cp ./html {CONTAINER ID}:/var/www/
最後に
これらのことを知っておくと、開発時のちょっとした時( データベースやファイルの中身を確認したい時・修正したファイルをバックアップしたいときなど
)に役立つと思ったので、備忘録としてこちらに書かせていただきました。
最初にも書きましたが、他にも便利な技があればコメントで教えていただけると幸いです。
Discussion