[Day 2: A-6] Qall - Docker で作る Quipper の開発環境


yhirano55

登壇者: Quipper Ltd 松島 史秋 氏 @mtsmfm

Quipper では学習サービスを展開していますが、先生向け、生徒向け、保護者向け、管理者向けといったように多くのアプリケーションが存在しています。

アプリケーションを跨いだ機能を開発するにあたって、これらを全てセットアップする必要があります。また、機能の追加により依存するパッケージやミドルウェアが追加される場合もあり、これらの管理は非常に煩雑です。

この問題を解決するため、1 コマンドで全ての環境を Docker 上に構築できる Qall を作成しました。

Qall 自体の構成や、Qall を作って日々の開発に利用している中で分かった、開発環境として Docker を利用するにあたってのハマりやすい点やその解決方法、現在抱えている問題について共有する予定です。

https://techplay.jp/event/655769


  • このセッションに関する質問を募集中です
  • 事前に聞きたいことがあれば、何でも書き込んでください。
  • 質問への回答はお約束できません。あらかじめご了承ください

Like(0)

Questions and feedbacks (5)

mtsmfm
mtsmfm commented over 1 year

現実として、ESLintやRubocopを流すときはどうしているのでしょう? ホストにいれて動かしているのか、CIに任せている?

懇親会中にも口頭でお話しましたが、Ruby のシンタックスチェックについては自作の language server を使っています。 https://github.com/mtsmfm/language_server-ruby

ただ、ESLint や Rubocop については CI や、手動コマンド実行に頼っているのが現状です。 Rubocop については language server で対応中なのですが、コードアクションへの対応などで手が止まっている段階です。

Like(0)

mtsmfm
mtsmfm commented over 1 year

Docker-Composer開発環境で複数のRailsアプリケーションを開発していると、プロジェクトAで使ってるポートとプロジェクトBで使っているポートがconflictしてしまうといったことがよく起こります。

発表後にも口頭でお話しましたが、https://github.com/mtsmfm/yaichi をリバースプロキシとして前段に 80 番ポートと3000番ポートを繋ぐように起動しておいて、プロジェクト A、B は 3000番ポートで起動するルールにします。 すると、yaichi がプロジェクト A も B 両方のネットワークに強引に自分を繋ぎにいくように作っているので、<container-a>.localhost<container-b>.localhost で接続できるようになります。このとき、A も B もホスト側には直接ポートを露出しないのがミソです。

Like(1)

muryoimpl

現実として、ESLintやRubocopを流すときはどうしているのでしょう? ホストにいれて動かしているのか、CIに任せている?

Like(1)

morimorihoge

ちょっと発表テーマとはずれるかも知れないのですが、Docker-Composer開発環境で複数のRailsアプリケーションを開発していると、プロジェクトAで使ってるポートとプロジェクトBで使っているポートがconflictしてしまうといったことがよく起こります。

具体的に良くあるのはRails serverのポートやRedisのポートがcompose単位で被ってしまうといった事象なのですが、こういうときにエイヤでdocker-composeのポート番号を変わらないように修正しても、docker-compose.ymlにない部分(rails側のconfigとか)にポート番号定義が隠れていて動かない、など辛いことが多いです。

もちろん作業プロジェクトを切り替える時にdocker-compose downしろという話ではあるのですが、それも面倒なので何か良い解決方法があればお聞きしたいです。

#会場にいるのでもし説明難しそうなら呼んで下さい

Like(0)

yhirano55

アプリケーションを跨いだ機能を開発するにあたって、これらを全てセットアップする必要があります。また、機能の追加により依存するパッケージやミドルウェアが追加される場合もあり、これらの管理は非常に煩雑です。

とてもよくある状況なので、どうやって解決しているのか非常に知りたいところです。楽しみにしています。

Like(0)

Create Comment

Please sign in to comment.

Sign in with GitHub
This software is available as open source under the terms of the MIT License.
Copyright © 2018 Yoshiyuki Hirano