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生成日志这是一个存储库的链接: 源代码