node.js - ENV 变量未正确添加到容器环境中

标签 node.js npm environment-variables docker dockerfile

这是我的Dockefile

FROM ubuntu:latest

MAINTAINER mazzy

WORKDIR /tmp

RUN apt-get update && apt-get install -y wget
RUN wget http://nodejs.org/dist/v0.12.0/node-v0.12.0-linux-x64.tar.gz
RUN tar xvf node-v0.12.0-linux-x64.tar.gz

RUN cp -r node-v0.12.0-linux-x64 /usr/local/

WORKDIR /usr/local
RUN ln -s /usr/local/node-v0.12.0-linux-x64.tar.gz /usr/local/node

# FIX HERE
ENV PATH /usr/local/node/bin:$PATH

RUN npm install -g bower

EXPOSE 8080:8080

这个 Dockerfile 的问题是,当我运行它时,我得到了错误 npm not found。这可能是由于安装文件夹没有正确添加到 PATH 环境变量中。

你知道为什么吗?

最佳答案

您创建的符号链接(symbolic link)无效。您的 /usr/local/node指向一个不存在的文件。您必须省略 .tar.gz .

除此之外,我建议使用 node:onbuild docker image 作为你的基础。它是作为您自己的 Node 应用程序的构建 block 创建的,并且已经包含了正确的 node.js 和 npm 设置。

关于node.js - ENV 变量未正确添加到容器环境中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28549269/

相关文章:

javascript - React 组件导入无法识别

node.js - git commit 添加 2 个新行

javascript - 对象预期的 Microsoft Jscript 运行时错误 - Node js

node.js - 无法在 RHEL 上安装 yarn

node.js - npm WARN package.json : No repository field

configuration - 使用环境变量在 redis.conf 中设置动态路径

node.js - 分布式Node系统中ENV的正确使用

docker - 在 dockerfile 中构建期间传递主机环境变量

javascript - 我应该如何在没有cookie和外部模块的情况下在nodejs中创建多语言

node.js - Nodejs - 使用预签名的 url 从 s3 存储桶中下载文件