-4

我正在尝试基于 Kali Linux 基础映像创建一个 docker 映像,并且我需要安装 NodeJS 作为我的应用程序的依赖项。

这是我的 Dockerfile:

FROM kalilinux/kali-linux-docker

RUN apt-get update -y && \
    apt-get dist-upgrade -y && \
    apt-get autoremove -y && \
    apt-get clean -y

RUN apt-get install curl -y

RUN curl --silent --location https://rpm.nodesource.com/setup_8.x | bash - \
    && apt-get install nodejs -y

RUN npm i -g npm

ENV NODE_ENV production

WORKDIR /root/app
COPY . .

RUN npm i

EXPOSE 4000
ENTRYPOINT ["npm", "start"]

但是,我在尝试安装 NodeJS 时遇到了以下错误:

Step 4/11 : RUN curl --silent --location https://rpm.nodesource.com/setup_8.x | bash -     && apt-get install nodejs -y
 ---> Running in a63e56802eba

## Installing the NodeSource Node.js 8.x LTS Carbon repo...


## Inspecting system...


## You don't appear to be running an Enterprise Linux based system,
please contact NodeSource at https://github.com/nodesource/distributions/issues
if you think this is incorrect or would like your distribution to be considered
for support.

The command '/bin/sh -c curl --silent --location https://rpm.nodesource.com/setup_8.x | bash -     && apt-get install nodejs -y' returned a non-zero code: 1

诚然,我对一些事情感到困惑......也就是说,我的印象是 NodeJS 已经安装在 Kali Linux 上(我有一个使用 Debian 64 位的 VirtualBox VM)。我试图安装kali-linux-all元包,但 NodeJS/npm 似乎不存在。

我只是误解了 Docker 和/或 Kali Linux 的一些基本前提吗?有没有其他方法可以将 NodeJS 安装到我的容器中?

4

1 回答 1

0

我仍然不完全理解为什么 NodeJS 安装在我的 VM 上而不是基本的 Kali docker 映像上......但无论如何我确实设法解除了自己的阻塞。

首先,我从 nodesource 中提取了一个需要的 NodeJS 安装脚本rpm——我发现了一个没有它也可以工作的不同脚本。但是,新脚本还要求我安装gnupg.

这是我更新的 Dockerfile:

FROM kalilinux/kali-linux-docker

RUN apt-get update -y && \
    apt-get dist-upgrade -y && \
    apt-get autoremove -y && \
    apt-get clean -y

RUN apt-get -y install curl gnupg

RUN curl --silent --location https://deb.nodesource.com/setup_8.x | bash - \
    && apt-get install nodejs -y

RUN npm i -g npm

ENV NODE_ENV production

WORKDIR /root/app
COPY . .

RUN npm i

EXPOSE 4000
ENTRYPOINT ["npm", "start"]
于 2018-11-13T20:44:16.390 回答