【发布时间】:2016-08-07 16:01:56
【问题描述】:
我正在尝试在我的 Docker 映像上安装 nvm。本来以为这个 Docker 镜像是在 Ubuntu 上构建的,但实际上是在 Debian 上构建的。我正在安装 bash 来 curl NVM,然后安装节点,但我收到 bad substitution 错误:
这是我的 Dockerfile:
FROM docker
RUN apk add --update bash \
&& touch /root/.bashrc \
&& curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.2/install.sh | bash \
&& source /root/.bashrc \
&& nvm install node \
&& npm install
我认为以下错误与&& source /root/.bashrc \ 行有关
=> Downloading nvm as script to '/root/.nvm'
0
=> Appending source string to /root/.bashrc
=> Close and reopen your terminal to start using nvm
/bin/sh: /root/.nvm/nvm.sh: line 107: syntax error: bad substitution
ERROR: Service 'docker' failed to build: The command '/bin/sh -c apk add --update bash && touch /root/.bashrc && curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.2/install.sh | bash && source /root/.bashrc && nvm install node && npm install' returned a non-zero code: 2
您知道是什么导致了这个糟糕的替换错误吗?有没有更简单的方法可以在基于 Debian 的 Docker 映像上安装 nvm?感谢您的帮助。
【问题讨论】:
-
第一步是查看 /root/.nvm/nvm.sh 的第 107 行。
标签: linux bash docker debian dockerfile