使用Dockerfile重新启动终端并运行命令

时间:2018-07-04 13:09:16

标签: linux docker dockerfile nvm

我有一个要在其中安装nvm的Dockerfile。安装后,我将需要使用nvm安装节点5.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中执行此操作?预先感谢。

2 个答案:

答案 0 :(得分:0)

您应该使用已经安装了正确版本的node.js的prebuilt node image

当您已经有了Docker映像作为与可能安装在主机上的其他软件的隔离层时,就不需要nvm(rvm,virtualenv等)之类的工具;您永远不会在单个映像中安装多个版本的语言运行时,而可能需要在台式机或开发人员系统上安装。

答案 1 :(得分:0)

具有命令可以执行此操作。
PATH="$PATH"exec bash
因此,您可以在dockerfile中添加这些命令。
如果exec bash不起作用。请尝试另一个。
对我来说有用!