host(macOS/arm64)と linux コンテナで node_modules をバインドマウント共有するとネイティブバイナリが衝突する
Node.js
インフラ
運用
docker-compose で ./app:/app をバインドマウントしてホスト(darwin-arm64)とコンテナ(linux)が同じ node_modules を共有すると、@swc/core のようなプラットフォーム別ネイティブバイナリを使うパッケージで問題が起きる。ホストで install すれば darwin バイナリ、コンテナで install すれば linux バイナリと、最後に install した側のバイナリだけが残り、もう片方で起動できなくなる。pnpm は lockfile が満たされていると Already up to date で no-op になるため、もう片方のバイナリが補完されない。「どちらで最後に install したか」で動いたり壊れたりする不安定さが構造的に残る。