Docker узел alpine node-sass Сборка модуля завершилась неудачно даже при запуске `npm rebuild node-sass` - PullRequest
2 голосов
/ 16 июня 2019

Я использую Docker node-alpine для моего проекта.

Структура моего проекта выглядит следующим образом

Project
  /client (for front end client where is need node-sass)
    package.json
    webpack.js
  index.js
  package.json

Это мой файл Docker

FROM node:8.16.0-alpine

RUN mkdir /app
WORKDIR /app

# --no-cache: download package index on-the-fly, no need to cleanup afterwards
# --virtual: bundle packages, remove whole bundle at once, when done
RUN apk --no-cache --virtual build-dependencies add \
    python \
    make \
    g++ \
    bash

RUN npm install -g nodemon

COPY package.json package.json
COPY client/package.json client/package.json

RUN npm install
RUN npm run install:client
RUN cd client && npm rebuild node-sass --force
# RUN npm run sass:rebuild:client

COPY . .

LABEL maintainer="Varis Darasirikul"

VOLUME ["/app/public"]

CMD npm run dev

Этоwebpack правил в моем клиенте

{
        test: /\.(sa|sc|c)ss$/,
        exclude: /node_modules/,
        use: [
          {
            loader: MiniCssExtractPlugin.loader,
            options: {
              hmr: process.env.NODE_ENV === 'development',
              // if hmr does not work, this is a forceful method.
              reloadAll: true,
            },
          },
          'css-loader',
          'postcss-loader',
          'sass-loader',
        ],
      },

Но после того, как я попытаюсь запустить webpack-dev-server в папке client.Я получил эту ошибку.

Node Sass could not find a binding for your current environment: Linux/musl 64-bit with Node.js 8.x
Run `npm rebuild node-sass` to download the binding for your current environment.

Что я уже сделал внутри моего dockerfile.

Так как я могу исправить это, все, что я пропустил в моем файле докера?

Спасибо!

...