首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么不在skaffold生成的docker镜像上运行npm测试?

为什么不在skaffold生成的docker镜像上运行npm测试?
EN

Stack Overflow用户
提问于 2018-07-25 20:14:29
回答 1查看 89关注 0票数 0

这是jx生成的默认Jenkinsfile

代码语言:javascript
复制
container('nodejs') {
  sh "npm install" #line 2
  sh "CI=true DISPLAY=:99 npm test" #line 3
  sh 'export VERSION=$PREVIEW_VERSION && \
     skaffold build -f skaffold.yaml' #line 4


  sh "jx step post build --image $DOCKER_REGISTRY/$ORG/$APP_NAME:$PREVIEW_VERSION"
}

skaffold build最终将运行docker build,并且Dockerfile也有npm install (重新运行与上面第2行相同的内容)

我知道第2行的npm install是为第3行的npm test做准备,但是我很好奇为什么不直接在生成的docker文件上运行测试呢?

代码语言:javascript
复制
container('nodejs') {
  sh 'export VERSION=$PREVIEW_VERSION && \
     skaffold build -f skaffold.yaml'
  sh 'docker run IMAGE_GENERATED_BY_SKAFFOLD npm test'


  sh "jx step post build --image $DOCKER_REGISTRY/$ORG/$APP_NAME:$PREVIEW_VERSION"
}

这样,我们就不需要重新执行npm install了。此外,运行npm test的环境与skaffold生成的环境完全相似。

我很好奇,Jenkins-X团队不这么做的考虑因素是什么?

EN

回答 1

Stack Overflow用户

发布于 2018-07-26 15:55:59

是的-我猜这取决于Dockerfile -它可以安装npm,也可以只是将构建的工件复制到docker镜像中-尽管在这种情况下不需要运行npm install两次。我们应该为npm修复构建包,以避免双重npm install

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51518625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档