Первоначально опубликовано на Середина
При использовании Alpine вам необходимо установить зависимости сборки для некоторого модуля узла, чтобы можно было построить изначально. Вот пример того, как вы установили бы зависимости для пакетов, которые требуют поддержки узлов-гипа на альпийском варианте:
FROM node:alpine RUN apk add --no-cache --virtual .gyp python make g++ \ && npm install [ your npm dependencies here ] \ && apk del .gyp
А вот многоступенчатый пример сборки:
FROM node:alpine as builder ## Install build toolchain, install node deps and compile native add-ons RUN apk add --no-cache python make g++ RUN npm install [ your npm dependencies here ] FROM node:alpine as app ## Copy built node modules and binaries without including the toolchain COPY --from=builder node_modules .
Pro Tip:
Как использует Alpine Linux мусульманин
, вы можете столкнуться с некоторыми проблемами со средами, ожидающими Glibc
-Поподобное поведение -особенно если вы пытаетесь использовать двоичные файлы, составленные с глибк
. Вы должны перекомпилировать эти двоичные файлы, чтобы использовать мусульманин
(Компиляция на альпийском, вероятно, самый простой способ сделать это). Если вы получите ошибку, аналогичную ошибке, загружая общую библиотеку LD-Linux-X86-64.SO.2
, возможно, у вас есть зависимости, полагающиеся на либ
— Вы можете попытаться исправить это, добавив:
RUN apk add --no-cache libc6-compat
или же
RUN ln -s /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2
к вашему Dockerfile.
Хотите учиться?
Следуй за мной на Twitter Где я публикую все о последнем и величайшем JavaScript, AI, DevOps, VR/AR, технологии и науке! Связаться со мной на LinkedIn слишком!
Оригинал: «https://dev.to/grigorkh/node-gyp-support-in-alpine-linux-4d0f»