Jenkins里面的Docker代理 – npm“找不到模块”

我正在从事以下构build步骤的自动化: – 使用webpack构build前端应用程序 – 在其上运行testing

我正在使用启用蓝海插件的Jenkins,这里是Jenkinsfile

Jenkinsfile:pipeline { agent { dockerfile { filename 'Dockerfile' } } stages { stage('Build') { steps { sh 'npm run build' } } } } 

我正在使用下面的Dockerfile

 FROM node:latest WORKDIR /app COPY . /app RUN npm install webpack -g && npm install 

问题是,当运行npm run build它不能findwebpack:

 > webpack --config webpack-production.config.js --progress --colors module.js:529 throw err; ^ Error: Cannot find module 'webpack' at Function.Module._resolveFilename (module.js:527:15) at Function.Module._load (module.js:476:23) at Module.require (module.js:568:17) at require (internal/module.js:11:18) at Object.<anonymous> (/var/lib/jenkins/workspace/l-ui-webpack-example_master-IXSLD4CQSVAM2DRFHYHOYUANEHJ73R5PUGW4BMYVT5WPGB6ZZKEQ/webpack-production.config.js:1:79) 

它看起来像命令正在主机上下文执行,而不是在容器上手动运行就好了:

 docker build . -t sample docker run sample npm run build 

这里是完整的jenkins日志: jenkins生成日志这是一个存储库的链接: 源代码