0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Docker環境構築に伴うnode_modulesの対応策

Posted at

発生した問題

アプリの動作には問題ないが、エディタなどでエラーが起きるためホスト側にnode_modulesを読み込ませる(作成する)必要があるため、作成しようとしたら下記の問題に遭遇した。

  • DockerでNext.jsの環境を構築する際に、npm installをすると作成されるnode_modulesが空ディレクトリでホスト側に作成される

  • (上記と同じため省略)node_modulesがホスト側に作成されない

  • バインドマウントや名前付きボリュームマウントだと、ホスト側(またはコンテナ側)でnode_modulesが上書きされてしまい正常に動作しない

問題の解決方法

  • コンテナ起動時にnpm installを実行

すなわち、DockerfileのCMDやdocker-compose.ymlのcommandnpm installをすることで解決した。

ですがこの解決方法では、再現性やビルド時間を考慮してイメージビルド時、つまりイメージ内で依存関係のインストールを完了したいという要件では、上記の対応策は意味をなさないでしょう。

ですので私は、ローカル開発環境ではコンテナ起動時に、本番環境ではイメージビルド時にnpm installするように対応しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?