あなたは誰?
- tyamahori(:ちゃまほり https://twitter.com/tyamahori)
- Laravel/PHPメインのサーバーサイドエンジニア
- 変更に強い設計や実装について日々思いを馳せる
- 株式会社MFS 所属 ( https://www.mortgagefss.jp )
- 住宅ローンや不動産投資ローンの不便を解決する会社
- 不動産投資サービス INVASE ( https://investment.mogecheck.jp/ ) の開発担当
最近のバズった記事
tyamahoriの思い
- DockerでNuxtプロジェクトのローカル環境を建てる必要があるときに参考にしてほしい
- ローカルのNode.js動かしているのであればそれがいいです
- こういうやり方もあるんだ!っていうのを知ってもらえればと
結論。今日知ってほしいこと
-
node_modules
ディレクトリをコンテナとホストでそのまま共有しない。- Macのファイルシステムの問題で遅くなる
- Mac側に
node_modules
ディレクトリが無いとIDE・エディタの補完が聞かない- 工夫して運用でカバーする。。。
じゃあどうするの?
-
docker cp
を使って、node_modules
ディレクトリをコンテナからMac側に持ってくる -
docker cp
コマンドはシェルスクリプトでラップして楽をして使う - 現実的なスピートとIDE・エディタの補完の両立ができるはず。。。
node_modules
ディレクトリの扱い
node_modules
ディレクトリの扱い
- コンテナ内部ではなく、トップレベルボリュームにマウントをする
-
docker-compose down
をしてもnode_modulesディレクトリを生残させるため -
docker-compose up
した際に0から npm(yarn) install しなくても良い
docker cp で node_modules
ディレクトリ をホスト側へ持ってくる
# サンプル
docker cp nuxt-dojo-app:/nuxt-dojo/node_modules ../../nuxt-dojo/node_modules
このままで叩くのは面倒なので、ラッパーシェルスクリプトを組んで、そこに処理を忍ばせる
おわり
ありがとうございました
サンプルリポジトリ