windows10上でdockerを使ってnode+typescriptの環境を作っている途中に解決出来ない問題が発生した為質問させて頂きます。
やりたい事
ホストと共有したディレクトリにDockerfileで設置したファイルを置いたままにしたい
詳細
Dockerfileでコンテナの/root/work直下に予め用意しておいたpackage.jsonを設置し、コンテナに入ってnpm install する運用を考えました。
当初は更に/root/work/srcディレクトリを用意し、そこだけをホストと共有、git配下にしようとしました。
※docker-compose.ymlでのディレクトリ共有
つまりnpm installで作られる/root/work/node_modulesは共有対象外となります。
しかし、この環境でvscodeで用いたプログラミングをするとnode_modulesにある型情報を読み込めずvscode上でコード上にwarningが発生します。
※例えばnpm installしたパッケージをimportしようとすると存在しないパッケージだと怒られる
vscodeを実行しているホスト側のディレクトリを見るので当然だと思いますが、では/root/workそのものを共有しようとした時に問題が発生しました。
元々Dockerfileで入れた/root/work/package.jsonが、おそらくディレクトリ共有のタイミングで
(おそらく)ホスト側の共有ディレクトリ(当然この時点では空っぽ)による上書きで全て無くなります。
ディレクトリ共有においてホスト側が優先されるのか、この箇所で完全に詰まってしまいました。
こういう場合、そもそも空のディレクトリを共有するところまでをDocker(compose)で行い、
npm周りは各自コンテナログイン→git等でpackage.jsonを取り込み→npm installというのが一般的なのでしょうか。
皆様の場合どのように対応しているのか、お力をお貸し頂ければ幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。