macOS上のDocker Desktopでviteを実行しようとするとSegmentation Faultが起きる
症状
macOSでLaravel Sailのviteコマンドがうまく動かず、試してみるとただのNodeコンテナ上のViteも動かなかった。
(2023-08-18追記: Docker Desktopの設定からVirtualization Frameworkを無効にすることでひとまず動かせるようです。)
(2024-04-17追記: Node.jsのバージョンを20系にしても動作しそうです。)
2024-05-21追記: 4.30.0
で修正されたようです👏
環境
Macbook Pro 2020
macOS Ventura 13.4
Docker Desktop 4.20.1
再現手順
docker run --rm -it node:18 bash
npm create vite@latest myapp
cd myapp
npm install
npm run dev
=> Segmentation Fault
対処
以下のGithubのIssue(Docker Desktop 4.19
向け) が5月にできているが、この中でDocker Desktopをダウングレードするとうまく動いたというコメントが多くあった。
https://github.com/docker/for-mac/issues/6824
Docker Desktopのバージョンを4.18
に落とすのが私の環境では有効だった。
以下のリンクからダウンロードできる。
https://docs.docker.com/desktop/release-notes/#4180
問題が解決するまで、間違ってDocker Desktopをアップデートしないように気をつけないといけない。
(2023/07/20 追記: 4.21.1
でも同様にSegmentation Faultした。残念。)
(2023/08/18 追記: 上記のIssue上で進展があり、macOSのVirtualization Frameworkを有効にしている場合に起こるらしいです。筆者環境でも無効にすると動作しましたが、せっかくのVirtioFS等の高速化の恩恵が受けられないので、早く治って欲しい。。。)
(2023/10/19 追記: 4.24.2
でも同様にSegFaultする。Virtualization Frameworkを無効にすると動作)
(2024-04-17 追記): 4.29.0
にて、筆者環境ではNode.jsのバージョンを20系にすると動作した。18系は同様にセグフォ。
Discussion