我正在尝试构建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
答案 0 :(得分:1)
我解决了这个问题
而不是按"source ~/.profile"
我将其更改为
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"]