🐋

macOS上のDocker Desktopでviteを実行しようとするとSegmentation Faultが起きる

2023/06/26に公開

症状

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で修正されたようです👏

https://github.com/docker/for-mac/issues/6824

https://docs.docker.com/desktop/release-notes/#4300

環境

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