Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
DockerでNodeの開発は厳しいのか? 2019/05/10 Gotanda.js #11 @mizuki_r
Slide 2
Slide 2 text
@mizuki_r 弁護士ドットコム株式会社 税理士ドットコム事業部/開発チーム チームマネージャー 2 自己紹介 JavaScript, Vue, Nuxt, Perl, PHP, Docker, AWS, etc…
Slide 3
Slide 3 text
免責事項 • VS Code使いの意見です • intelijも試したかったけど時間が… • 所属する組織・団体の主張ではなく、個人 の意見です • 鵜呑みにせず、参考にとどめましょう
Slide 4
Slide 4 text
Node環境もDockerにしたい
Slide 5
Slide 5 text
Node on Dockerしたい • 複数プロジェクトを並列で開発している • グローバルインストールしたくない • ndenv, nvm, etc, メンテしたくない • docker-composeに集約したい
Slide 6
Slide 6 text
Docker for Macは mounted volumeの IOが非常に遅い
Slide 7
Slide 7 text
IOが非常に遅い • mounted volumeの更新系が遅い • Nodeを用いた開発はファイルのW/Rが非常 に多くなる • npm install, build処理など • これが遅いのは致命的
Slide 8
Slide 8 text
rm -rf node_modules/* && npm install 環境 実行時間 ホストマシン 14.93s Docker with mounted volumes 86.83s
Slide 9
Slide 9 text
Dockerにmountしたvolume への更新は遅い
Slide 10
Slide 10 text
mountしなければいいのでは?
Slide 11
Slide 11 text
mounted volumeでの 大幅なIO更新をやめる
Slide 12
Slide 12 text
mounted volumeをやめる node_modulesを上書きして、ホストにマウントしなくする
Slide 13
Slide 13 text
rm -rf node_modules/* && npm install 環境 実行時間 ホストマシン 14.93s Docker with mounted volumes 86.83s Docker without mounted volumes 20.22s
Slide 14
Slide 14 text
だいぶマシになった。
Slide 15
Slide 15 text
mounted volumeしないと 困るか?
Slide 16
Slide 16 text
VS Code使いあるある • eslint, typescriptのVS Code Serverがホ ストに必要 • node_modulesを直接参照(見る・書換る) したい
Slide 17
Slide 17 text
コンテナの中で VS Code Serverを動かせればぁ…
Slide 18
Slide 18 text
VS Code Insiders
Slide 19
Slide 19 text
VS Code Insiders • vscodeの新機能を確認したり、テストした りするためのInsiders Programの後継 • 通常版のvscodeと同居でき、設定も別のエ ディタとして利用する https://code.visualstudio.com/insiders/
Slide 20
Slide 20 text
Developing inside a Container • Remote Developmentの拡張を追加するこ とでSSH, Containers, WSLとの通信が可能 • リモートでVS Code Serverを実行し、リ モートの環境で行われたあれこれをホスト 側のVS Codeに反映してくれる https://code.visualstudio.com/docs/remote/containers
Slide 21
Slide 21 text
No content
Slide 22
Slide 22 text
まとめ
Slide 23
Slide 23 text
まとめ • NodeJS on DockerはIOのマウントを外せ ば軽減する • VS CodeのInsiders buildを使うことでホ ストにマウントせず開発ができる
Slide 24
Slide 24 text
実行環境
Slide 25
Slide 25 text
実行環境 • MBP 2018 Core i7 16GB • Docker version 18.09.2, build 6247962 • docker-compose version 1.23.2, build 1110ad01 • node v11.15.0
Slide 26
Slide 26 text
実験コード https://github.com/rymizuki/example-node-on-docker