当前位置: 首页 > 知识库问答 >
问题:

如何在Docker中安装nvm?

颛孙越
2023-03-14

我正在构建一个新的Docker映像,我希望安装NVM,这样我就可以管理NodeJ了。

阅读关于如何安装NVM的文档时,他们提到,为了开始使用NVM,您需要提供.bashrc文件的源码。

ADD files/nvm_install.sh /root/
RUN chmod a+x  /root/nvm_install.sh
RUN bash -c "/root/nvm_install.sh"
RUN bash -l -c "source /root/.bashrc"
RUN cd /root
RUN bash -l -c "nvm install 0.10.31"
Step 0 : FROM ubuntu
---> 826544226fdc
Step 1 : MAINTAINER dficociello
---> Using cache
---> da3bc340fbb3
Step 2 : RUN apt-get update
---> Using cache
---> 6b6b611feb4f
Step 3 : RUN apt-get install nginx curl -y
---> Using cache
---> 159eb0b16d23
Step 4 : RUN touch /root/.bashrc
---> Using cache
---> 5e9e8216191b
Step 5 : ADD files/nginx.conf /etc/nginx/
---> Using cache
---> c4a4a11296a2
Step 6 : ADD files/nvm_install.sh /root/
---> Using cache
---> b37cba2a18ca
Step 7 : RUN chmod a+x  /root/nvm_install.sh
---> Using cache
---> bb13e2a2893d
Step 8 : RUN bash -c "/root/nvm_install.sh"
---> Using cache
---> 149b49a8fc71
Step 9 : RUN bash -l -c "source /root/.bashrc"
---> Running in 75f353ed0d53
---> 0eae8eae7874
Removing intermediate container 75f353ed0d53
Step 10 : RUN cd /root
---> Running in feacbd998dd0
---> 284293ef46b0
Removing intermediate container feacbd998dd0
Step 11 : RUN bash -l -c "nvm install 0.10.31"
---> Running in 388514d11067
bash: nvm: command not found
2014/09/17 13:15:11 The command [/bin/sh -c bash -l -c "nvm install 0.10.31"] returned a non-zero         code: 127

共有1个答案

云洋
2023-03-14

每次运行在单独进程中的bash...时,环境中设置的任何内容都不会得到维护。以下是我如何安装NVM:

# Replace shell with bash so we can source files
RUN rm /bin/sh && ln -s /bin/bash /bin/sh

# Set debconf to run non-interactively
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections

# Install base dependencies
RUN apt-get update && apt-get install -y -q --no-install-recommends \
        apt-transport-https \
        build-essential \
        ca-certificates \
        curl \
        git \
        libssl-dev \
        wget \
    && rm -rf /var/lib/apt/lists/*

ENV NVM_DIR /usr/local/nvm # or ~/.nvm , depending
ENV NODE_VERSION 0.10.33

# Install nvm with node and npm
RUN curl https://raw.githubusercontent.com/creationix/nvm/v0.20.0/install.sh | bash \
    && . $NVM_DIR/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
 类似资料:
  • 问题内容: 我想创建一个docker镜像并正确安装,因此我选择具有这些属性的基础镜像。因此,的第一行如下: 然后下一个命令是 在创建docker映像时创建了以下错误: 如何能够在此docker映像中安装? 问题答案: 如提示: 获取(13:权限被拒绝) 我相信这是由于您的基本形象: https://github.com/SeleniumHQ/docker- selenium/blob/master

  • 问题内容: 这就是我的: 工作正常,但是,当我启动容器时,看到以下内容: 显然,这不是我想要的。据我了解,问题是默认情况下不会运行。这就是为什么Ruby不是来自RVM安装的原因。我该如何解决? 问题答案: 长话短说: 命令不会将bash作为登录shell启动。 说明: 当您运行没有它的invoke庆典,这使得选项行为就好像它被调用作为登录shell,初始化依赖于-ing分词或和初始化是或或任何其他

  • 如何在高山容器中安装Docker并运行docker映像?我可以安装,但无法启动docker,并且在运行时获取“docker命令未找到错误”。

  • 问题内容: 我有一个带有Phalcon3和php 7的Docker容器。我正在尝试安装php扩展名Mcrypt,但不走运。 如果我对容器执行ssh并执行: 我得到以下内容: 有没有办法安装它? 问题答案: 让我们看一下php docker镜像的 官方手册 部分PHP核心扩展 例如,如果您想要一个带有iconv,mcrypt和gd扩展名的PHP- FPM映像,则可以继承您喜欢的基本映像,并编写自己的

  • 所以我想开始使用Jenkins构建我的应用程序,然后测试它,并将我的图像推送到本地repo。因为我有两张图片要推送,我想使用docker compose,但docker compose缺失。 我通过Portainer安装了Jenkins,我使用的是jenkins/jenkins: lts映像。 有没有一种方法可以将docker compose安装到容器中,而不必为其创建自己的docker文件? 到

  • 问题内容: 我想研究minikube。我成功安装了它,但是我了解到在Windows 10中,我需要禁用Hyper-v。现在,当我尝试安装docker时,它需要启用Hyper-v。 我都需要工作。 请提出一种实现此目标的方法。 感谢你的帮助 。:) 问题答案: 您可以通过在Minikube的Hyper-V Manager中创建新的虚拟交换机来实现。 打开Hyper-V管理器(通过简单的Windows