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

标签 linux docker dockerfile nvm

我有一个 Dockerfile,我正在其中安装 nvm。安装后,我需要使用 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

在运行 https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh 后在真正的 linux 中 | bash 关闭并启动终端后,nvm 命令可用。我如何在 dockerfile 中执行此操作?提前致谢。

最佳答案

有命令可以做到这一点。
PATH="$PATH"exec bash
因此,您可以将这些命令添加到您的 dockerfile 中。
如果 exec bash 不起作用。请尝试另一个。
这对我有用!

关于linux - 重新启动终端并使用 Dockerfile 运行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51174516/

相关文章:

linux - 发送数据时是否可以选择网络适配器

c++ - VSCode - C++ 未定义对 'CLASS::FUNCTION' 的引用

node.js - 未找到 WSL Node 路径?卷似乎已安装

docker - 将文件放入 Docker 镜像

php - 带有Laravel的Docker

docker - 为什么 ASP.NET Core Multi-Stage Dockerfile 使用 4 Stages

linux - io_add_watch 回调只触发一次?

python-3.x - 与外部 MQTT 代理连接时出现问题

docker - 如何在 “docker-compose”中进行 “docker machine”?

python - 如何在 Docker 容器中动态添加 Jenkins 用户和权限