Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DockerでNodeの開発は厳しいのか? #gotandajs
Search
mizuki_r
May 10, 2019
Technology
3
340
DockerでNodeの開発は厳しいのか? #gotandajs
mizuki_r
May 10, 2019
Tweet
Share
More Decks by mizuki_r
See All by mizuki_r
税理士ドットコムの 技術的挑戦 #tapioca_lt
rymizuki
0
250
PHPを始めて1年、レガシーシステムにどう向き合っているか #phpstudy
rymizuki
1
600
モダンとレガシー #gotandaem
rymizuki
0
500
Vuexに型を付けるパターンを調べた #gotandajs
rymizuki
0
110
マネージャー!きみは何者だ! #gotandaem
rymizuki
0
1.6k
物語を楽しむための物語論
rymizuki
0
480
失敗と向き合う
rymizuki
0
1.2k
社内勉強会と組織の成長を考える
rymizuki
1
2.5k
Webpackのビルド時間を1/3にした話 #gotandajs
rymizuki
9
4.1k
Other Decks in Technology
See All in Technology
Developer Experienceを向上させる基盤づくりの取り組み事例集
coconala_engineer
0
150
LINEヤフーのフロントエンド組織・体制の紹介
lycorp_recruit_jp
1
1.2k
Privacy Sandbox on Android / DroidKaigi 2024
7pairs
1
270
2024年のナビゲーション・フォーカス対応:Composeでキーボード・ナビゲーションをサポートしよう
tahia910
0
110
突撃! 隣のAmazon Bedrockユーザー 〜YouはどうしてAWSで?〜
minorun365
PRO
3
390
PDF Viewer作成の今までとこれから
hunachi
0
470
20240911_New_Relicダッシュボード活用例
speakerdeckfk
0
110
チームビルディングは"感性"で向き合おう / Team Building with Awareness
kohzas
0
260
あなたの知らないiOS開発の世界
recruitengineers
PRO
3
180
【株式会社ELYZA】|GENIAC成果報告会 自社開発モデルプレゼンテーション
elyza
1
270
「認証認可」という体験をデザインする ~Nekko Cloud認証認可基盤計画
logica0419
2
440
社内の学びの場・コミュニティ形成とエンジニア同士のリレーションシップ構築/devreljapan2024
nishiuma
3
290
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
691
190k
How GitHub (no longer) Works
holman
310
140k
YesSQL, Process and Tooling at Scale
rocio
167
14k
Robots, Beer and Maslow
schacon
PRO
157
8.2k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.4k
WebSockets: Embracing the real-time Web
robhawkes
59
7.3k
Clear Off the Table
cherdarchuk
91
320k
Visualization
eitanlees
142
15k
What's new in Ruby 2.0
geeforr
340
31k
Facilitating Awesome Meetings
lara
49
5.9k
Fantastic passwords and where to find them - at NoRuKo
philnash
48
2.8k
Become a Pro
speakerdeck
PRO
22
4.9k
Transcript
DockerでNodeの開発は厳しいのか? 2019/05/10 Gotanda.js #11 @mizuki_r
@mizuki_r 弁護士ドットコム株式会社 税理士ドットコム事業部/開発チーム チームマネージャー 2 自己紹介 JavaScript, Vue, Nuxt, Perl,
PHP, Docker, AWS, etc…
免責事項 • VS Code使いの意見です • intelijも試したかったけど時間が… • 所属する組織・団体の主張ではなく、個人 の意見です •
鵜呑みにせず、参考にとどめましょう
Node環境もDockerにしたい
Node on Dockerしたい • 複数プロジェクトを並列で開発している • グローバルインストールしたくない • ndenv, nvm,
etc, メンテしたくない • docker-composeに集約したい
Docker for Macは mounted volumeの IOが非常に遅い
IOが非常に遅い • mounted volumeの更新系が遅い • Nodeを用いた開発はファイルのW/Rが非常 に多くなる • npm install,
build処理など • これが遅いのは致命的
rm -rf node_modules/* && npm install 環境 実行時間 ホストマシン 14.93s
Docker with mounted volumes 86.83s
Dockerにmountしたvolume への更新は遅い
mountしなければいいのでは?
mounted volumeでの 大幅なIO更新をやめる
mounted volumeをやめる node_modulesを上書きして、ホストにマウントしなくする
rm -rf node_modules/* && npm install 環境 実行時間 ホストマシン 14.93s
Docker with mounted volumes 86.83s Docker without mounted volumes 20.22s
だいぶマシになった。
mounted volumeしないと 困るか?
VS Code使いあるある • eslint, typescriptのVS Code Serverがホ ストに必要 • node_modulesを直接参照(見る・書換る)
したい
コンテナの中で VS Code Serverを動かせればぁ…
VS Code Insiders
VS Code Insiders • vscodeの新機能を確認したり、テストした りするためのInsiders Programの後継 • 通常版のvscodeと同居でき、設定も別のエ ディタとして利用する
https://code.visualstudio.com/insiders/
Developing inside a Container • Remote Developmentの拡張を追加するこ とでSSH, Containers, WSLとの通信が可能
• リモートでVS Code Serverを実行し、リ モートの環境で行われたあれこれをホスト 側のVS Codeに反映してくれる https://code.visualstudio.com/docs/remote/containers
None
まとめ
まとめ • NodeJS on DockerはIOのマウントを外せ ば軽減する • VS CodeのInsiders buildを使うことでホ
ストにマウントせず開発ができる
実行環境
実行環境 • MBP 2018 Core i7 16GB • Docker version
18.09.2, build 6247962 • docker-compose version 1.23.2, build 1110ad01 • node v11.15.0
実験コード https://github.com/rymizuki/example-node-on-docker