node: _ZSt28__throw_bad_array_new_lengthv: symbol not found
intel mac時代に使っていたプロジェクトをM2 macで動かそうとしたらエラーになった。
$ docker compose exec web npm install
node: _ZSt28__throw_bad_array_new_lengthv: symbol not found
このコンテナには(悪手ですが)nginxとnode.jsがマルチステージビルドで入っています。
構成
- compose.yml ※一部抜粋
web:
build: ./infrafile/docker/nginx.dockerfile
- nginx.dockerfile ※一部抜粋
FROM node:14-alpine as node
FROM nginx:1.18-alpine
結論
nginxのコンテナはarm64でビルドされたものが、
nodeコンテナはamd64でビルドされたものでした。
それは…だめだよね。
- compose.yml
web:
platform: linux/x86_64
build: ./infrafile/docker/nginx.dockerfile
- nginx.dockerfile 変更なし