我希望您在一个独立的RUN中运行npm install。
以下是dockerfile。
在这种情况下,npm install有效。
但是当我将其转换为:
它说:
为什么?
以下是dockerfile。
RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash \
&& export NVM_DIR="$HOME/.nvm" \
&& [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" \
&& nvm install node && nvm use node \
&& npm cache clean -f && npm install -g n && n stable && npm install cross-env \
&& npm install \
&& npm run dev
在这种情况下,npm install有效。
但是当我将其转换为:
RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash \
&& export NVM_DIR="$HOME/.nvm" \
&& [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" \
&& nvm install node && nvm use node \
&& npm cache clean -f && npm install -g n && n stable && npm install cross-env
RUN npm install
RUN npm run dev
它说:
/bin/sh: 1: npm: not found
为什么?
nvm.sh
,那么该 shell 就没有可用的nvm
函数。每个RUN
命令都会启动一个新的 shell,因此它不会拥有之前 shell 的局部环境变量和函数。 - Charles Duffy