Я использую 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
.
Так как я могу исправить это, все, что я пропустил в моем файле докера?
Спасибо!