我们正在尝试构建一个c#应用程序,让gulp为前端网站做一些捆绑/缩小。
由于gulp依赖关系,我们目前使用的是节点6。未来的分支将更新到节点10,但在我们迁移项目时需要不同的节点依赖关系。我认为使用docker容器进行构建可能有助于减轻本地计算机上节点版本之间的切换。
所以我创建了一个docker镜像FROM microsoft/dotnet-framework:4.7.2-sdk
然后我在上面加载了npm。将卷绑定到我的源目录我可以安装npm包,安装nuget包并调用build,但它将失败,因为它缺少我的吞咽步骤。
我在容器中全局安装了gulp,并在本地的node_modules文件夹中安装了gulp。我最终得到了一个错误,比如,
C:\Program Files\node\node-v6.16.0-win-x64\node_modules\gulp\node_modules\sver-compat\sver.js:19
var semver = version.match(semverRegEx);
^
TypeError: Cannot read property 'match' of undefined
at new Semver (C:\Program Files\node\node-v6.16.0-win-x64\node_modules\gulp\node_modules\sver-compat\sver.js:19:23)
at Function.match (C:\Program Files\node\node-v6.16.0-win-x64\node_modules\gulp\node_modules\sver-compat\sver.js:374:15)我已经在网络上搜索了好几天,但没有找到任何可以帮助我处理这里正在爆炸的东西的东西。有没有人能够在Windows Server Core docker容器中成功运行gulp?挂载的目录有问题吗?使用Docker for Windows,如果这很重要的话。
发布于 2019-01-31 23:46:13
在Windows-Server-Core上,我最好的猜测是docker、volume-mount和npm/gulp系统链接有问题。
我相信默认设置在容器上的用户想要使用c:\containermappeddirectories文件夹。在这一点上,我不确定这是否可配置。
但我的工作在powershell中看起来像这样,都在容器中运行,
npm install -g gulp@^3.9.1
md c:\ContainerMappedDirectories
cd c:\containermappedDirectories
robocopy /S "c:\MyUISource" C:\ContainerMappedDirectories
npm install #installs gulp locally to this folder
gulp prod-build
robocopy /S C:\ContainerMappedDirectories\dist c:\MyUISource因此,我全局安装了gulp,创建了本地工作区,复制了源代码并运行npm/gulp,然后将输出复制回挂载位置。
最后,这是我能完成的最好的工作来完成我的任务。
https://stackoverflow.com/questions/54328005
复制相似问题