こんにちは.高山です.
普段は開発環境として,Docker という仮想環境に VSCode の CLI版を入れてリモート接続,という構成をよく使います.
今回気まぐれに Docker を Podman という類似の仮想環境に切り替えてみたのですが,VSCode 上のターミナルから Node を動かそうとすると,上手く動かないという症状が出てしまいました.
結論としては,Podman のコンテナに割り当てているメモリが足らないことが原因だったのですが,原因を特定するのに苦労しました.
今後同じようなことが起きたときのためのメモとして,解決までの手順を書き残しておこうと思います.
1. 環境
- ホストOS: macOS SEquoia 15.3.2 (MacBook Air, 13インチ, M4, 2025)
- Podman: 5.4.1
- Linuxイメージ: RockyLinux 9.3.20231119
2. 起きた現象
まずどのような手順で現象が起きたかを説明します.
最初に,下記のように Podman 上で Linux コンテナを立ち上げます.
$ podman run -it --rm image_name bash -l
次に,VSCode CLI を立ち上げホストから接続します.
$ code tunnel
最後に,VSCode のターミナルから次のコマンドで NextJS ベースの Webアプリをビルドすると,処理が矯正終了されてしまいました.
$ npm run build
> my_web_app@0.1 build
> next build
▲ Next.js 15.2.4
Creating an optimized production build ...
Using tsconfig file: tsconfig.json
✓ Compiled successfully
Linting and checking validity of types .
Killed
VSCode ではなく通常の Shell から npm run build
した場合は正常にビルドが通ります.
$ npm run build
> my_web_app@0.1 build
> next build
▲ Next.js 15.2.4
Creating an optimized production build ...
Using tsconfig file: tsconfig.json
✓ Compiled successfully
Linting and checking validity of types .
...
✓ Linting and checking validity of types
✓ Collecting page data
✓ Generating static pages
✓ Collecting build traces
✓ Finalizing page optimization
...
○ (Static) prerendered as static content
3. 原因と解決策
原因自体は非常に単純で,Podman に割り当てられているメモリ容量が少なく,Node が処理途中で落ちてしまっていました.
Podman では Linuxイメージを作成する前に,下記のコマンドで仮想マシンを作成します.
$ podman machine init
このとき,デフォルト設定では仮想マシンには 2GiB しか割り当てられません.
$ podman machine list
NAME VM TYPE CREATED LAST UP CPUS MEMORY DISK SIZE
podman-machine-default* applehv About a minute ago Currently running 5 2GiB 100GiB
コンテナに割り当てられるメモリサイズは,仮想マシンのメモリサイズが上限となるため,VSCode を立ち上げながらビルド処理をするにはメモリ不足になっていました.
この状態を回避するには,Podman で仮想マシンを作成する際に,メモリ容量を増やす必要があります.
$ podman machine init --memory 8192
上の例では,8GiB のメモリを割り当てています.
$ podman machine list
NAME VM TYPE CREATED LAST UP CPUS MEMORY DISK SIZE
podman-machine-default* applehv 25 hours ago Currently running 5 8.002GiB 100GiB
メモリ容量を増やして再度試してみたところ,VSCode のターミナル上からでも npm run build
が通るようになりました.
如何でしたでしょうか?
原因は分かってしまえば単純な話ですが,npm run dev
で NextJS の開発サーバを立ち上げた場合は,メッセージも無く唐突に落ちてしまうので原因を探すのに苦労しました.
同じような現象でお困りの方がいましたら,少しでも参考になれば幸いです.