🏌️‍♂️

Laravel9 Sail Dockerイメージを構築する際のNodeのバージョンを変更する方法

2023/11/13に公開
sail build --no-cache

でSailのDockerイメージを再構築しようとした際にDockerfileに記載のNodeのバージョンがサポートされておらず、構築に少し時間がかかったため記事に残します

環境

技術 バージョン
Sail 1.26
PHP 8.1.25
Laravel 9.40.1

エラー内容

7 215.9 npm ERR! code EBADENGINE
#7 215.9 npm ERR! engine Unsupported engine
#7 215.9 npm ERR! engine Not compatible with your version of node/npm: npm@10.2.3
#7 215.9 npm ERR! notsup Not compatible with your version of node/npm: npm@10.2.3
#7 215.9 npm ERR! notsup Required: {"node":"^18.17.0 || >=20.5.0"}
#7 215.9 npm ERR! notsup Actual:   {"npm":"8.19.4","node":"v16.20.2"}

npm10ではNode.js 18.17.0以上か、20.5.0以上をサポートしている模様
https://github.com/npm/cli/releases/tag/v10.0.0-pre.0
それなのに、現在は16.20.2が使用されているよということがわかります
前はすんなり通った気がするのでいつの間にかnpmのバージョンが上がっていた・・?

実際にNodeのバージョンを変更するには使用しているPHPバージョンのDockerfileを見にいき
今回だとdocker/8.1/Dockerfile

上の方にある

ARG NODE_VERSION=16

ARG NODE_VERSION=18

に変更すればOK

参照

https://stackoverflow.com/questions/77021282/docker-install-nodejs-giving-error-engine-unsupported-engine

Discussion