我正在尝试对 Jenkins 进行一两个快速实验。为此,我打算使用jenkins图像并向其添加nodejs和npm。这是我想要做的:
FROM jenkins
USER root
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - \
&& apt-get update \
&& apt-get install -y \
nodejs
RUN npm install -g npm
RUN npm --version
USER jenkins
但是,
npm --version
调用将失败,并显示以下错误:Step 5/6 : RUN npm --version
---> Running in 48a250a4fdb8
module.js:471
throw err;
^
Error: Cannot find module 'process-nextick-args'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/usr/lib/node_modules/npm/node_modules/readable-stream/lib/_stream_readable.js:26:23)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
The command '/bin/sh -c npm --version' returned a non-zero code: 1
解决此问题的正确方法是什么(如果有)?
最佳答案
请尝试以下操作,它使用docker多阶段构建将依赖关系从一个镜像复制到另一个镜像。这将使您避免在docker中安装节点所需完成的所有特殊操作。有一个由docker团队构建的正式docker镜像,因此您可以如下使用它:
FROM node
FROM jenkins
USER root
COPY --from=0 /usr/local /usr/local
RUN npm --version
USER jenkins
npm --version将输出5.3.0
关于node.js - 将nodejs和npm添加到Jenkins Docker镜像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46176808/