【发布时间】:2018-04-06 05:30:18
【问题描述】:
我正在努力实现以下构建步骤的自动化: - 使用 webpack 构建前端应用程序 - 对其进行测试
我正在使用启用了 blue-ocean 插件的 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时找不到webpack:
> 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 build log 这是一个存储库的链接:Source code
【问题讨论】:
标签: node.js docker jenkins jenkins-pipeline