かきノート

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

May 4, 2021 • ☕️ 3 min read

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

ちなみに MONICA は、Laravelで作成されたオープンソースの CMS。

公式の Docker イメージはこちら。
https://hub.docker.com/_/monica/

docker-compose.yml

Make sure to pass in values for APP_KEY variable before you run this setup.

とのことなので、そこは適当に埋めてみた。

version: "3.4"

services:
app:
  image: monica
  depends_on:
    - db
  ports:
    - 8080:80
  environment:
    - APP_KEY=
    - DB_HOST=db
  volumes:
    - data:/var/www/html/storage
  restart: always

db:
  image: mysql:5.7
  environment:
    - MYSQL_RANDOM_ROOT_PASSWORD=true
    - MYSQL_DATABASE=monica
    - MYSQL_USER=homestead
    - MYSQL_PASSWORD=secret
  volumes:
    - mysql:/var/lib/mysql
  restart: always

volumes:
data:
  name: data
mysql:
  name: mysql

起動するも、エラー

kaki@pckaki301 MONICA % docker-compose up -d
ERROR: In file './docker-compose.yml', service must be a mapping, not a NoneType.

どうやら、yaml ファイルの記述が誤っていると発生するエラーらしい。

が、「どこがおかしいか」まではエラーメッセージから読み取る事ができず。

「yaml を整形してくれる VSCode のプラグインって無いかな?」と探していたら、どうやら Prettier で出来るっぽいように感じてしまったが、単に設定ファイルを yaml で書けるというだけだったというオチで、余計な時間が溶けた。

docker.yml の構文チェックをしてくれるサービスがあったような無かったような気がしたが、見つけきれず。

仕方なく、どこが間違っているのか、泥臭く探して修正していくしかないか・・・と思ったら、こんなの見つけた。

(MONICA の github リポジトリ。Docker で起動する時についての記述)
https://github.com/monicahq/docker

docker-compose.yml Docker hub に記載している内容と違うやんけ!
と言うわけで、こっちを採用。

version: "3.4"

services:
  app:
    image: monica
    depends_on:
      - db
    ports:
      - 8080:80
    environment:
      - APP_KEY=
      - DB_HOST=db
      - DB_USERNAME=usermonica
      - DB_PASSWORD=secret
    volumes:
      - data:/var/www/html/storage
    restart: always

  db:
    image: mysql:5.7
    environment:
      - MYSQL_RANDOM_ROOT_PASSWORD=true
      - MYSQL_DATABASE=monica
      - MYSQL_USER=usermonica
      - MYSQL_PASSWORD=secret
    volumes:
      - mysql:/var/lib/mysql
    restart: always

volumes:
  data:
    name: data
  mysql:
    name: mysql

無事、起動。
あの苦労は何だったんだ一体・・・

と言う事で、あとは MySQL をローカルから接続できるように設定し、APP_KEY に適当な値を放り込んで、docker-compose up -d
最終的に作成した docker-compose.yml は、こんな感じ。
https://github.com/kakisoft/variety-of-tables-scheme-documentations/blob/main/MONICA/docker-compose.yml

出力したテーブル設計書は、これ。
https://github.com/kakisoft/variety-of-tables-scheme-documentations/blob/main/MONICA/tbls/doc/schema/README.md

今回は Dockerを使っていますが、前回は「適当にアプリケーションのモックを作成して、migration ファイルだけ放り込んで DB作り直せば行けるんじゃね?」と思ってやってみたが、意外と Model やらユーティリティ系もコピーする必要があったり、composer で色々と持ってこないといけなかったりと、なかなかカオスな状況になったので、今回は Docker を使った。

規模が小さいアプリだと、その方法でも何とかなるかもしれないが(Koelはその方法で行きました)、MONICA は結構規模が大きいので、素直に公式配布の Docker イメージを使う方が吉。


Relative Posts:

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

May 5, 2021

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

May 3, 2021

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

RotateLinkImg-iconRotateLinkImg-iconRotateLinkImg-iconRotateLinkImg-icon