我试图用Jenkins做一两个快速的实验。为此我打算使用jenkins图像并添加nodejs和npm。这就是我要做的事情:
n
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
解决这个问题的正确方法是什么(如果有的话)?
答案 0 :(得分: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
答案 1 :(得分:0)
Docker的Jenkins图像使用最小的安装来运行Jenkins,因此在运行实时容器时,不要直接更改Dockerfile,而是进行一些调试。
docker exec -it <containerid> -u root /bin/bash
然后尝试更改,而不是在Dockerfile中反映这些更改