May 3, 2021 • ☕️ 3 min read
オープンソースの DB定義書を出力して遊んでみる。
今まで出力したきたものがこちら。
Redmine と Koel のテーブル設計書を出力してみたので、今度は WordPress をやってみる。
公式の Docker イメージファイルを使用しています。
https://hub.docker.com/_/wordpress
公式に記載されている docker-compose.yml を使用。
version: '3.1'
services:
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- wordpress:/var/www/html
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- db:/var/lib/mysql
volumes:
wordpress:
db:
// 起動・終了
docker-compose up -d
docker-compose down
// 終了時にコンテナを削除
docker-compose down --rmi all
docker-compose down --rmi all --volumes
kaki@pckaki301 WordPress % docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f5cdc346436a mysql:5.7 "docker-entrypoint.s…" About a minute ago Up About a minute 3306/tcp, 33060/tcp wordpress_db_1
642d9a761d0d wordpress "docker-entrypoint.s…" About a minute ago Up About a minute 0.0.0.0:8080->80/tcp wordpress_wordpress_1
クライアントツールは、Sequel Pro を使用
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
しかし、接続エラー
MySQL の応答: Can't connect to MySQL server on '127.0.0.1' (61)
調べてみると、ポートが EXPOSE されていない時に起こりがちとのこと。
上手く言っている場合は、PORTS が 0.0.0.0 となっているらしい。
今回はそうなっていないので、それが原因な気がする。
(参考)
dockerで立てたMySQLコンテナに外部から接続できずにハマった時の話
と言うわけで、docker-compose.yml の db 部分に以下を追記
ports:
- "3306:3306"
念のため、ボリュームを削除して、再起動
docker-compose down --rmi all --volumes
docker-compose up -d
結果、接続成功。
あとは、テーブル定義書を出力するために、ログイン。
・・・が、テーブルはすっからかん。
WordPress のインストールが要るのか? と言う事で、以下の URL からログインしてインストール。
作成した後はブチ捨てる予定なので、ユーザもパスワードも超適当に設定。
Site Title : aaa
Username : aaa
Password : aaa123bbb456
無事、テーブルが作成されました。
tbls を使って出力。
接続設定は、こんな感じ。
dsn: mysql://exampleuser:examplepass@localhost:3306/exampledb
docPath: doc/schema
出来たのが、こちら。
WordPressテーブル定義書