得到错误/ bin / sh:1:来源:找不到

时间:2016-11-17 05:37:20

标签: node.js ubuntu docker dockerfile nvm

我正在尝试构建docker并安装nvm

一些代码行

RUN curl   https://raw.githubusercontent.com/creationix/nvm/v0.25.0/install.sh | bash
    RUN source ~/.profile

卷曲成功运行,但在运行源代码时,低于错误

/bin/sh: 1: source: not found
The command '/bin/sh -c source ~/.profile' returned a non-zero code: 127

2 个答案:

答案 0 :(得分:1)

我解决了这个问题

而不是按"source ~/.profile"

安装nvm

我将其更改为

RUN curl   https://raw.githubusercontent.com/creationix/nvm/v0.25.0/install.sh | bash

ENV NVM_DIR=/root/.nvm
ENV NODE_VERSION=4.5.0
RUN . $HOME/.nvm/nvm.sh && nvm install $NODE_VERSION && nvm alias default $NODE_VERSION && nvm use default

答案 1 :(得分:0)

来自Docker docs

  

可以使用SHELL更改shell表单的默认shell   命令。

     

在shell表单中,您可以使用\(反斜杠)继续单个RUN   指令到下一行。例如,请考虑以下两行:   RUN / bin / bash -c' source $ HOME / .bashrc; \ echo $ HOME'他们在一起   相当于这一行:RUN / bin / bash -c' source   $ HOME / .bashrc; echo $ HOME'

     

注意:要使用不同于“/ bin / sh”的shell,请使用exec   形式传递在所需的外壳中。例如,RUN [" / bin / bash",   " -c"," echo hello"]

你可以尝试:

RUN curl   https://raw.githubusercontent.com/creationix/nvm/v0.25.0/install.sh | bash
# RUN source ~/.profile
RUN ["/bin/bash", "-c", "source ~/.profile"]