linux - 使用 Dockerfile 重新启动终端并运行命令
问题描述
我有一个安装 nvm 的 Dockerfile。安装后,我需要使用 nvm 安装节点 5.11。问题是,安装 nvm 后,需要关闭终端并再次运行才能使用 nvm 命令。
我的码头文件看起来像:
# 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中做到这一点?提前致谢。
解决方案
有命令可以做到这一点。
PATH="$PATH"
因此exec bash
,您可以在 dockerfile 中添加这些命令。
如果exec bash
不行。再试一个。
这对我有用!
推荐阅读
- uuid - Laravel 8 Fortify 用户 UUID 登录问题
- reactjs - 在数组 React 中收集数组的唯一值
- amazon-web-services - AWS DynamoDB - 免费套餐混淆
- python - 使用颜色图图例绘制条形图
- c++ - `auto` 和 `std::any` 有什么区别?
- botframework - 使用 botframework cli 工具创建的 Dispatch 模型中是否丢失了 LUIS 模型特征?
- list - 如何在字典中迭代和存储变量?
- node.js - setInterval() 在 azure microsoft 中不起作用
- jenkins - 从当前 Jenkins 控制台日志中提取文本
- google-play-console - Google Play 管理中心新更新中的应用访问