gpt4 book ai didi

node.js - Docker容器中的Node-sass绑定(bind)问题

转载 作者:搜寻专家 更新时间:2023-11-01 00:03:39 26 4
gpt4 key购买 nike

在运行 Docker 容器时,使用我的 Angular 应用程序的源代码安装卷时出现问题。

我的主机操作系统是 Win 10 64 位。

这是我的 Dockerfile,它位于应用程序的根文件夹中。

# base image
FROM node:10

# set working directory
RUN mkdir /usr/src/app
WORKDIR /usr/src/app

# install and cache app dependencies
COPY package.json /usr/src/app/package.json
RUN npm install
RUN npm install -g @angular/cli@1.7.1
RUN npm install node-sass@latest
RUN npm rebuild node-sass

# add app
COPY . /usr/src/app

# start app
CMD ng serve --host 0.0.0.0

有关安装和重建 Node-sass 的行是修复问题的努力,可能应该在这里。

所以我开始构建docker容器

docker build -t my-cool-app .

然后运行:我想将源代码从我的主机挂载到容器中:

docker run -it -v ${PWD}:/usr/src/app -v ${PWD}/node_modules -p 4200:4200  my-cool-app

应用程序开始编译,但出现错误。

Module build failed (from ./node_modules/sass-loader/lib/loader.js): Error: Missing binding /usr/src/app/node_modules/node-sass/vendor/linux-x64-64/binding.node Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 10.x

Found bindings for the following environments: - Windows 64-bit with Node.js 10.x

我理解问题:node-sass 以二进制代码的形式构建在 Windows 主机上,并且没有在 Linux 中启动的绑定(bind)。作为这里的人https://github.com/sass/node-sass/issues/2165说 - 嘿,安装后重建 node-sass - 我将这样的命令添加到 Docker 文件但仍然失败。

最佳答案

问题是作为第 3 步的一部分,您正在从本地环境复制 node_modules 文件夹。确保您创建了一个 .dockerignore 文件并添加了 node_modules 文件夹.一旦你这样做了,你就不需要做 npm rebuild

关于node.js - Docker容器中的Node-sass绑定(bind)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55650901/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com