我试图基于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安装到我的容器中吗?
答案 0 :(得分:0)
我仍然不完全理解为什么在我的VM上安装NodeJS而不是在基本的Kali docker映像上安装...但是无论如何,我确实设法解除了对自己的阻止。
首先,我从需要rpm
的nodesource中提取了NodeJS安装脚本-我找到了一个不需要该脚本的脚本。但是,新脚本还要求我安装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"]