/ bin / bash:npm:找不到命令(docker容器)

问题描述 投票:0回答:1

我已经用nvm构建了一个docker映像:

FROM ubuntu:19.10

RUN rm /bin/sh && ln -s /bin/bash /bin/sh

RUN apt-get update && \
    apt-get -y dist-upgrade && \
    apt-get -y autoremove && \
    apt-get clean all


RUN apt-get install -y \
    git \
    curl \
    bash-completion

ARG NODE_VERSION='12.0.0'
ARG NVM_DIR=/root
ARG NVM_VERSION='v0.35.3'

RUN curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/$NVM_VERSION/install.sh" | bash \
    && source $NVM_DIR/nvm.sh \
    && nvm install $NODE_VERSION

ENV TERM=xterm

现在,我正在尝试测试是否可以启动容器并运行npm

docker run my-npm-image /bin/bash -c  "npm --version"

但是给出:

/bin/bash: npm: command not found

如果我改为这样做:

docker run -it my-npm-image /bin/bash
root@laptop:/# npm --version
6.9.0

有效。因此,npm已安装在映像中,但是如果没有先entering容器,我将无法运行它。

注意,使用上述方法可以正常运行其他命令:

docker run my-npm-image /bin/bash -c  "git --version"
git version 2.20.1

任何想法,安装了npmnvm会带来什么?

docker npm nvm
1个回答
-1
投票

您可以使用docker exec找出答案>>

docker exec -it <container-Id> npm --version

https://docs.docker.com/engine/reference/commandline/exec/

© www.soinside.com 2019 - 2024. All rights reserved.