【发布时间】:2017-08-28 07:28:39
【问题描述】:
我有带有基础镜像的 dockerfile,我安装了 npm/node:
FROM golang:1.7
RUN apt-get update && apt-get install -y wget
###node
ENV NVM_DIR /usr/local/nvm
ENV NODE_VERSION 6.10.1
RUN wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.3/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
当我启动这个容器时,我可以在容器内执行node 或npm 命令:
docker exec -it 763993cc1f7a bash
root@763993cc1f7a:/go# npm -v
3.10.10
但是当我向 dockerfile 添加节点或 npm 命令时:
RUN npm ...
我得到:/bin/sh: 1: npm: not found
这怎么可能?
【问题讨论】:
-
@yamenk 是的!
-
为什么要从 Go 基础构建 Node 映像?
-
@TarunLalwani 因为我需要在一张图片中。我没有展示我的 Dockerfile 的 go 部分。对于本地开发,我们使用 go contains 和 node 容器,但他仅在本地为我们工作。在进一步的阶段,我们必须将 javascript 保留在 go 中