node.js - Docker Node 安装

标签 node.js docker npm

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

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

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

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

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

导出 NVM_DIR="$HOME/.nvm"

[ -s "$NVM_DIR/nvm.sh"] &&\. "$NVM_DIR/nvm.sh"# 这会加载 nvm

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

但是当我执行两个单独的 RUN 时,第二个就不再看到 NVM_DIR 了。当然,我可以在一次 RUN 中完成所有操作,但稍后我需要使用 npm,因此每个 RUN 都应该能够看到此命令.

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

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

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

最佳答案

使用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。

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

关于node.js - Docker Node 安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58129002/

相关文章:

node.js - 问 : Hot to change Ip in request using tor-request npm

docker - 大厅无法连接到 Docker 存储库

macos - docker 未在OSX上打开端口

windows - Windows 上的 npm 无法识别已安装的模块

javascript - 如何在nodejs中重复执行

node.js - 使用 npm 更新本地文件依赖

javascript - 从 Facebook Messenger 中检索 first_name 会导致 [object Promise]

mysql - 如何在 Sequelize 模型中动态选择数据库(或 "schema")?

node.js - 如何扩展 Node.js WebSocket Redis 服务器?

docker - docker-compose配置是否可以覆盖Docker CLI的100%?