将Node.js永久安装/添加到(Jenkins)Docker映像中

时间:2018-09-11 07:19:00

标签: node.js docker jenkins

我如何(最好)将Node.js永久安装/添加到(詹金斯)Docker映像中?

结果是同时包含Jenkins和nodejs的docker映像。

目的是将nodejs作为全局工具安装在Jenkins容器中。要了解 nodejs的安装文件夹,必须知道。

我看到了这个解决方案,但是Nodejs的安装文件夹是什么?

  

RUN curl -sL https://deb.nodesource.com/setup_8.x |须藤-E bash && \       sudo apt-get install -y nodejs

在Jenkins构建时自动添加nodejs(以后)不是一件好事,因为它会减慢构建过程。

2 个答案:

答案 0 :(得分:1)

在jenkins映像之上安装nodejs是一种方法。在打包依赖项时,添加一个指令以在Dockefile中安装nodejs是Docker中的标准操作。

  

在Jenkins构建时自动添加nodejs(以后)不是   好事,因为它减慢了构建过程。

并非总是如此。 Docker构建使用缓存来构建Dockerfile时创建的图层。因此,如果将nodejs安装在Dockerfile的顶部,则只需等待一次即可安装,下一个构建命令将仅使用缓存,并且无需在Jenkins映像内安装nodejs的任何额外时间。

我建议您使用docker multi-stage builds将nodejs安装在jenkins映像中。由于已经存在Docker image for node,因此可以使用它在jenkins映像中安装节点。

FROM node as nodejs

FROM jenkins/jenkins
COPY --from=nodejs /usr/local/bin/node /usr/local/bin/node

通过构建上面的Dockerfile,您将获得带有jenkins的映像,并使用官方节点Docker映像安装了节点。

答案 1 :(得分:0)

除答案外,请查看此superb solution。这允许安装nodejs和npm。现在,我可以在shell中作为命令运行“ npm”。因此,不需要使用Global Tools。注意:建议不要使用多个FROM。

一个很好的加法是this piece of advice。如果需要多个节点版本,也可以在Jenkinsfile中定义它们!