【发布时间】:2021-02-15 04:47:45
【问题描述】:
我在 Docker 中工作以将 Angular 5 应用程序容器化。这个应用程序使用 node-sass 4.7.2。该应用程序在 Windows 环境中运行良好。在“npm install”期间,它会下载 node-sass 或使用 .npmrc 文件中定义的 sass-library-path 构建它。
但是,在 docker 镜像创建过程中存在很多问题。它会自动尝试从https://github.com/sass/node-sass/releases/download/v4.7.2/linux-x64-72_binding.node 下载 binding.node 文件 但是,没有针对 linux-x64-72 的版本。因此,它会下载一个虚拟文件(大小约为 4KB)并抛出“无效 ELF 标头”错误。
如果我在 sass-binary-path(https://github.com/sass/node-sass/releases/download/v4.7.2/linux-x64-59_binding.node) 中指定了一些有效的 URL,它会抛出“no module found”错误。
我也试过npm rebuild node-sass。我也从网上看到了很多答案。许多答案建议我从本地环境中复制节点模块。你知道,这绝不是 Docker 的一个选项。我不能要求开发人员也在存储库中提交节点模块。
有没有办法解决这个问题?或者是否有任何简单的解决方案可以在 Angular 应用程序中解决它,比如不使用 node-sass?
【问题讨论】:
-
你能分享你的DockerFile吗
标签: node.js angular docker node-modules node-sass