当前位置: 首页 > 面试题库 >

Dockerfile:将npm添加到现有的Docker映像

谷梁嘉运
2023-03-14
问题内容

有了Jenkins
Docker映像,我想向该映像添加完整的’npm’环境。因此,在构建了Dockerfile之后,我同时拥有Jenkins和’npm’环境的映像。

目的是让詹金斯(Jenkins)作业运行shell命令“ npm”。因此,’npm’应该在$ PATH上(在Ubuntu中)。

我已经有了一个包含很多东西的Dockerfile,例如Jenkins和Maven。

这篇文章描述了节点的解决方案。重要的是,我可以做一些类似的事情吗?我应将哪些文件夹复制到Jenkins泊坞映像?

FROM node as nodejs

FROM jenkins/jenkins
// All kinds of other stuff goes here
COPY --from=nodejs /usr/local/bin/node /usr/local/bin/node ???

在Jenkins Global工具中自动安装“ npm”不是我的首选解决方案。


问题答案:

使用多个FROM指令不是功能,这是一个bug。建议删除它,您应该避免使用它

不惜一切成本!

如果您需要在詹金斯中使用npm,则只需将其安装在此处即可。openjdk无论如何,它都是基于图像的。

FROM jenkins/jenkins

RUN apt-get install -y curl \
  && curl -sL https://deb.nodesource.com/setup_9.x | bash - \
  && apt-get install -y nodejs \
  && curl -L https://www.npmjs.com/install.sh | sh


 类似资料:
  • 问题内容: 我对docker很陌生,并且正在遵循此处找到的文档,尝试使用docker- compose 1.14.0在dind内部署几个容器,我得到了以下内容 我错过了什么? 问题答案: 在执行docker run之前,将docker-compose安装添加到您的Dockerfile中。 例如,如果您有一个Ubuntu码头工人,则将其添加到您的 Dockerfile中 : 因为看起来好像您的入口点

  • 我有一个基于Windows的docker容器,运行它并在其中运行一个应用程序。但有时我需要在图像中添加一个文件夹,并运行另一个应用程序。如何递归添加 从我的主机到我的图像?

  • 问题内容: 我通过运行此命令为Tomcat提取了官方Docker镜像。 通过使用它作为基本映像,我需要构建新映像,该映像在 文件夹中包含我的war文件。我这样创建了Dockerfile。 当我通过构建映像运行此Dockerfile时,无法看到Tomcat主页。 谁能告诉我如何将我的warfile添加到官方Tomcat图像webapp文件夹中。 问题答案: 从仓库的文档中读取内容,您会做类似的事情

  • 我创建了一个Docker容器,只需在Ubuntu上安装Docker并执行以下操作: 我立即开始安装Java和一些其他工具,花了一些时间与它,并停止了容器通过 然后我想增加一个卷,并意识到这并不像我想的那样简单。如果我使用,那么我最终会得到一个新的容器,因此我必须安装Java并执行之前已经执行的操作,只需要到达一个具有已装入卷的容器。 所有关于从主机装入文件夹的文档似乎都暗示装入卷是创建容器时可以完

  • 问题内容: 我有一个Docker容器,它是通过在Ubuntu上安装Docker并执行以下操作而创建的: 我立即开始安装Java和其他一些工具,花了一些时间并通过以下方式停止了该容器 然后,我想添加一个卷,并意识到这并不像我想象的那样简单。如果我使用了,那么我将得到一个全新的容器,因此我将安装Java并做我已经做过的事情,然后再到达一个具有已安装卷的容器。 有关从主机安装文件夹的所有文档似乎都暗示了

  • 我尝试将扩展添加到我的/(基于linux alpine)映像中: 尝试创建扩展时,出现以下错误: 但当我搜索容器中的文件时,我可以在不同的目录中找到它们: 如何安装到不同的目录或配置来识别我添加的扩展? 最新消息 当我只是的文件到我得到的错误: 更新2 因此,的问题是,指向但是在中。当我将所有内容移动到相应的目录时,我可以成功创建扩展。 这就引出了我希望找到答案的问题。如何将安装到