【问题标题】:Install nodejs using docker使用 docker 安装 nodejs
【发布时间】:2014-07-27 04:31:09
【问题描述】:

我已尝试以下方法将节点安装到 centos 盒子中,但在到达 ./configure 时出现错误

Step 6 : RUN tar -zxf node-v0.10.28-linux-x64.tar.gz
---> Running in ebc71472544d
---> c97289348900
Removing intermediate container ebc71472544d
Step 7 : RUN cd /node-v0.10.28-linux-x64
---> Running in 3470f862c586
---> 1771d01a5da0
Removing intermediate container 3470f862c586
Step 8 : RUN ./configure
 ---> Running in 16a811766136
/bin/sh: ./configure: No such file or directory

我的 Dockerfile

#Install NodeJS
RUN cd /usr/src
RUN wget http://nodejs.org/dist/v0.10.28/node-v0.10.28-linux-x64.tar.gz
RUN tar -zxf node-v0.10.28-linux-x64.tar.gz
RUN cd /node-v0.10.28-linux-x64
RUN ./configure
RUN make &&
RUN make install

我是否使用了使用 Dockerfile 将节点安装到 centos 的正确方法?

【问题讨论】:

    标签: node.js centos docker


    【解决方案1】:

    我假设这不是整个 Dockerfile,对吧?否则你至少会丢失一个FROM

    尝试像这样更改最后 4 行:

    RUN cd /node-v0.10.28-linux-x64 && ./configure
    RUN cd /node-v0.10.28-linux-x64 && make
    RUN cd /node-v0.10.28-linux-x64 && make install
    

    或者像这样

    RUN cd /node-v0.10.28-linux-x64 && ./configure && make && make install
    

    据我所知,docker 将每个 RUN 命令作为单独的 shell 运行,因此在接下来的命令中不会记住更改目录。

    这是一个用于测试的示例 Docker 文件:

    FROM ubuntu
    
    RUN cd /etc
    RUN pwd
    

    这是构建日志:

    Step 0 : FROM ubuntu
     ---> 99ec81b80c55
    Step 1 : RUN cd /etc
     ---> Running in a4c25ee340a8
     ---> 82ad93bdd18c
    Removing intermediate container a4c25ee340a8
    Step 2 : RUN pwd
     ---> Running in f535178df40c
    /
     ---> 495c68757268
    

    [编辑]

    另一种选择是使用WORKDIR,如下所示:

    #Install NodeJS
    WORKDIR /usr/src
    ADD http://nodejs.org/dist/v0.10.28/node-v0.10.28-linux-x64.tar.gz .
    RUN tar -zxf node-v0.10.28-linux-x64.tar.gz
    WORKDIR node-v0.10.28-linux-x64
    RUN ./configure
    RUN make &&
    RUN make install
    

    【讨论】:

      【解决方案2】:

      我使用 nvm 的解决方案:

      RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
      RUN source $HOME/.bashrc && nvm install 12.14.1
      
      RUN ln -s $HOME/.nvm/versions/node/v12.14.1/bin/node /usr/bin/node
      RUN ln -s $HOME/.nvm/versions/node/v12.14.1/bin/npm /usr/bin/npm
      
      RUN node -v
      RUN npm -v
      

      【讨论】:

        猜你喜欢
        • 2017-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多