我有一个安装nvm的Dockerfile。安装之后,我需要使用nvm安装Node5.11。问题是,在安装nvm之后,需要关闭终端并再次运行,以便使nvm命令可用。
我的docker文件如下所示:
# Installing Node
RUN Y | curl https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash
# RUN bash --login
RUN exec bash
RUN nvm install 5.11.0
# Installing Project dependencies
RUN npm install yarn -g
RUN npm install -g webpack@1.13.2我得到的输出是:
Step 5/9 : RUN exec bash
---> Using cache
---> cfcdc4c98714
Step 6/9 : RUN nvm install 5.11.0
---> Running in 1874de4a7715
/bin/sh: 1: nvm: not found
The command '/bin/sh -c nvm install 5.11.0' returned a non-zero code: 127在真正的linux中,在运行https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash、关闭并启动终端之后,nvm命令变得可用。如何在dockerfile中完成此操作?提前谢谢。
发布于 2019-12-06 14:39:56
Has命令可以做到这一点。
PATH="$PATH"和exec bash
因此,您可以在dockerfile中添加这些命令。
如果exec bash不是work.Try另一个。
这是我的工作!
发布于 2021-10-29 23:30:52
您可以使用以下命令在Dockerfile中重启终端:
RUN bash -c "source ${HOME}/.bashrc" 发布于 2021-10-30 00:09:08
每一个新的RUN命令都会在docker镜像中创建一个新的层,因此您可以将其视为每次“运行”时产生的新终端。
问题似乎是什么:当以这种方式运行命令时:通过bash curl https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash 管道传输它,如果某些东西失败,它不会抛出任何错误。
几周前也有类似的问题。您的基础映像是否具有所有依赖项?根据基本映像,在从github运行脚本之前,添加一个运行证书任务,该任务将下载curl wget ca-。你可以查看其他人是如何在他们的镜像上安装nvm的:https://github.com/mikeyfarrow/docker-nvm/blob/master/Dockerfile
https://stackoverflow.com/questions/51174516
复制相似问题