docker - Docker exec npm命令

标签 docker npm nvm

我已经成功构建了带有节点的docker容器。
当我将它缩进npm时,节点命令可以按预期工作,但是当我尝试远程执行命令(docker exec vvs_workspace npm install)时,它将打印rpc error: code = 2 desc = oci runtime error: exec failed: exec: "npm": executable file not found in $PATH
Dockerfile:

#####################################
# Node / NVM:
#####################################

ENV NVM_DIR=/home/dockuser/.nvm
ENV NODE_VERSION 6.3.1

RUN curl https://raw.githubusercontent.com/creationix/nvm/v0.31.3/install.sh | bash \
    && . ~/.nvm/nvm.sh \
    && nvm install $NODE_VERSION \
    && nvm alias default $NODE_VERSION \
    && nvm use default

ENV NODE_PATH $NVM_DIR/v$NODE_VERSION/lib/node_modules
ENV PATH      $NVM_DIR/v$NODE_VERSION/bin:$PATH

RUN echo "" >> ~/.bashrc && \
    echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc && \
    echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm' >> ~/.bashrc

附言当执行docker exec vvs_workspace composer install时,一切正常。

最佳答案

我找到了解决方案https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/82,只需在您的Dockfile中添加ENV PATH $PATH:/home/laradock/.nvm/versions/node/v6.8.0/bin即可。将/home/laradock/.nvm/versions/node/v6.8.0/bin更改为您的nvm路径。

关于docker - Docker exec npm命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38745509/

相关文章:

node.js - 我在创建 react 文件时收到此错误

npm - 跨平台 NPM 启动脚本

node.js - NVM 全局模块文件夹

docker - Openshift 零停机部署 react + rest api

amazon-web-services - 带有 Docker 和 EBS 卷的 EC2,在初始化期间将 EBS 卷安装在容器内

docker - "This node is not a swarm manager"错误,但我没有使用 docker swarm

node.js - npm WARN tar ENOENT 没有这样的文件或目录 node_modules/.staging/typescript-8be04997/lib/zh-CN/diagnosticMessages. generated.json

node.js - 无法使用 NPM 命令 - block 范围声明

node.js - 在 Cloud 9 IDE 中更新 node.js 版本

Java - Docker 无法安装依赖项 - Html2Pdf 库