Ответ 1
Я узнал, что node альпийское изображение поставляется с пряжей.
Пряжа - это замена для npm Facebook, и вы можете использовать ее для глобальной установки npm @5:
RUN npm -v
RUN yarn global add [email protected]
RUN npm -v
COPY ./ ./
RUN npm run setup
(Вызов версии лишний и только для того, чтобы подчеркнуть, что обновление работает.)
И теперь он работает:
Step 4/9 : RUN npm -v
---> Running in dca435fbec59
4.2.0
---> f6635e6c92a3
Removing intermediate container dca435fbec59
Step 5/9 : RUN yarn global add [email protected]
---> Running in fac7216ccd91
yarn global v0.24.4
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Installed "[email protected]" with binaries:
- npm
Done in 10.47s.
---> b6b2e0f3fc36
Removing intermediate container fac7216ccd91
Step 6/9 : RUN npm -v
---> Running in 38a9ee95b9f0
5.0.0
---> d1632fc97b7e
Removing intermediate container 38a9ee95b9f0
Step 7/9 : COPY ./ ./
---> b9b62f53ca48
Removing intermediate container e9dd065c022f
Step 8/9 : RUN npm run setup
---> Running in aec36af706d4
> [email protected] setup /usr/hive-updater
> npm install --quiet && npm run build
added 102 packages in 5.156s
> [email protected] build /usr/hive-updater
> tsc
Итак, если у вас есть npm ниже версии 5 и его метод обновления ломается для вас, установите пряжу для обновления npm ¯\_ (ツ) _/¯
Sidenote:
Лучше всего использовать пряжу вместо npm @5. Он по-прежнему имеет сильное преимущество в производительности.
Сравните эти прогоны, оба кешированные:
yarn install v0.24.5
[1/4] Resolving packages...
success Already up-to-date.
Done in 0.31s.
с npm @5:
npm install
updated 102 packages in 3.069s
Я не знал, что yarn
уже отправлен с альпийским изображением.