首页 > 解决方案 > Docker节点安装

问题描述

我正在尝试准备一个 docker 映像以加快构建过程并避免在每次构建时安装各种工具和库,我的基本映像将包含它,然后我会将它与我需要的所有已安装的东西一起使用。

所以问题是我正在尝试从 NVM(节点版本管理器)安装节点,但安装后我无法使用 nor nvmnornpm命令。

我的基础镜像是 golang:1.13.1,我做了以下事情。

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

然后在教程中,我看到~/.nvm/nvm.sh必须运行才能完成下面的工作

export NVM_DIR="$HOME/.nvm"

[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

我对其进行了一些更改,因为由于 shell 不同,我的 docker 映像无法识别少数命令。

但是当我做两个分开RUN时,第二个就看不到NVM_DIR了。当然,我可以做所有事情,RUN但我需要npm稍后再做,所以每个人都RUN应该能够看到这个命令。

另外,我尝试导出NVM_DIR,但即使我重新启动它仍然无法正常工作. ~/.bashrc

拥有 NVM 的重点是我不想关心节点版本。每个版本都是 LTS 版本,这对我来说没问题。

欢迎分享您的解决方案或建议。提前致谢

标签: node.jsdockernpm

解决方案


使用 npm 安装 nodejs 而不更改图像且不使用 nvm (我不太喜欢)的方法是

RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - \
    && apt-get install -y nodejs

之后RUN npm -vRUN node -v它与 nvm 的 LTS 版本相同,即 6.9.0 和 10.16.3。

我找不到更好的解决方案,但我希望它可以帮助某人


推荐阅读