2019.06.01 開発環境をDocker化しました

これまでこのサイトを開発するときは、Vagrantでローカルに仮想環境を作って作業してたんですが、ある時ふとVagrantをアップグレードしたところ、何かがぶち壊れてしまったようでVagrantが起動しなくなってしまい、どうにも戻せなくなってしまったため、どうせなら開発環境をDockerにするか!ということでDockerで開発環境を作っていました。

リポジトリはhttps://github.com/mizzsig/docker-sssignal2.2で、構成としては下の図のような感じです。


特に技術的にすごいことをしているわけでもないので詳細が気になる方は適当に上の図と動画(Docker化ができるまでの作業配信です)を見てくれーという感じなのですが、docker-composeをする時のコンテナはフォアグラウンドでコマンドを実行しないといけないというルールがあるようで、これに何回か詰まってしまったので、Dockerfileをいじったりする場合は気をつけていきたいです。

その他、作業してて気づいたこと(Dockerじゃないことも含む)を以下に適当に列挙してみます。

Dockerとアプリケーションのリポジトリが別になってて良くない
Vagrantで開発していた時から構成を管理するリポジトリと中身のリポジトリを別に作ってしまってたのですが、結局両方触ることになるなら分ける意味ないなーと感じました。
Laravelに役割を持たせすぎている?
このサイトはLaravel + αで動いている感じなのですが、外にAPIを出しつつページにアクセスした時もLaravelがHTMLを生成したりしてるのはLaravelの役割が多いのでは?と思いました。
DBの中身を妙に複雑にしていた
サイト制作当時の自分が下のような配列をうまく処理できなかったため、実装力を上げるぞという目的で下の画像のような構造になっているのですが、運用してみるとビューヘルパーがDBに引っ張られて複雑になっているのではという気持ちになりました。多少は自分の実装力も上がった気がしますし、サイトを更新するのは自分1人なので妙に複雑な構成にする必要もないのかなと感じました。
jQueryとVue.jsが混在している
このサイトの作成当初はJS部分はjQueryのみを使っていたのですが、後からVue.jsも入れ出したため1ページに色々混ざってごっちゃりしてしまったかもという印象です。しかもjQueryは何を思ったのかpublic以下にシンボリックリンクを張って読み込めるようにしているので面倒な感じです。自分のJS理解の薄さを感じる、、、
上記の通り、Docker化の副産物的な感じでサイトの課題点らしきものも見えてきたのでよかったなという感じです。
その他技術じゃない気づきと自分のお気持ちは以下に続きます。
https://sssignal.com/column/sssignalNextPhase