こんにちは。ブロックチェーンチームでエンジニアをしているid:odan3240です。 4月4日に行われたMeguro.es #20で「JavaScript + Dockerの知見」というタイトルで登壇してきました。今回の記事はその発表の紹介です。
発表の背景
モバイルファクトリーに入社してからの約1年間でいくつかのサービスに関わってきました。
- サービスサイト: https://uniqys.net
- ブロックチェーンアプリ検索サイト: https://findapps.me
- ブロックチェーンアプリ開発ツールキット: uniqys/UniqysKit
チームの開発では、フロントエンドはvue.jsやnuxt.jsが、バックエンドではTypeScriptが採用されることが多いです。実際関わったお仕事の技術スタックは次のようになっています。
- サービスサイト
- フロントエンド: nuxt.js
- ブロックチェーンアプリ検索サイト
- フロントエンド: nuxt.js
- バックエンド: TypeScript
- ブロックチェーンアプリ開発ツールキット
- 実装: TypeScript
- サンプルアプリ: vue.js
このうちブロックチェーンアプリ検索サイトでは、開発環境にDocker for Macを、本番環境にDockerを使用しています。
チームではデザイナがvueファイルを触ることがあるため、docker-compose up
を叩くだけで簡単に開発環境が立ち上がることを理由にDocker for Macを使用していました。
知見
このような背景でmeguro.esではJavaScript+Dockerに関する次の5つの知見を共有しました。
- コンテナのnode_modulesを守る
- ホストのnode_modulesを用意
- Docker for MacのI/Oが遅い
- node.jsはPID 1を想定していない問題
- .dockerignoreを用意する
詳しくはスライドをご覧ください。
反響
懇親会
フロントエンドの開発環境についての情報交換を行いました。スライドで主張していた「開発環境をDockerに閉じ込めてもコード補完のためにホスト側にnode_modulesを用意する必要がありつらい」に共感する話をいただけました。自分の中でもやもやしていた不満点は、他の方も同様に感じていることがわかり安心しました。
ネット
スライドを公開したところはてなブックマークでいくつかのコメントがつきました。 http://b.hatena.ne.jp/entry/s/speakerdeck.com/odanado/knowledge-of-docker-in-javascript
また、IOボトルネックの観点からもフロントエンドの開発環境にDockerは不要だという言及もされました。
終わりに
meguro.esは名札に貼る属性シールが用意されているなど、参加者に配慮されているとても良い勉強会です。興味のある方は6月6日に予定されている meguro.es #21 に参加してみてはいかがでしょうか。
Meguro.es # 20 @ Drecomの参加レポート: https://meguro.es/posts/meguro-es-20