かきノート

【Docker】WordPress の テーブル定義書をドキュメント化してみる

May 3, 2021 • ☕️ 3 min read

オープンソースの DB定義書を出力して遊んでみる。

今まで出力したきたものがこちら

RedmineKoel のテーブル設計書を出力してみたので、今度は WordPress をやってみる。

公式の Docker イメージファイルを使用しています。
https://hub.docker.com/_/wordpress

公式に記載されている docker-compose.yml を使用。  

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

MySQL 接続

クライアントツールは、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 からログインしてインストール。

http://localhost:8080

作成した後はブチ捨てる予定なので、ユーザもパスワードも超適当に設定。

Site Title : aaa
Username   : aaa
Password   : aaa123bbb456

無事、テーブルが作成されました。

DB定義書出力

tbls を使って出力。

接続設定は、こんな感じ。

.tbls.yml
dsn: mysql://exampleuser:examplepass@localhost:3306/exampledb

docPath: doc/schema

出来たのが、こちら。
WordPressテーブル定義書


Relative Posts:

オープンソースアプリケーションのテーブル設計書を出力して遊んでみよう!:MONICA編

May 4, 2021

MySQL テーブルのカラムにコメントを追加しようとしたら、想像以上に業が深かった。

January 15, 2021

福岡の物流エンジニアが、七転び八起きしたあと九回転び、寝っ転がったまま何かやってる事を垂れ流しているブログ

RotateLinkImg-iconRotateLinkImg-iconRotateLinkImg-iconRotateLinkImg-icon