Docker-如何运行在构建期间安装的包?

Docker-如何运行在构建期间安装的包?,docker,Docker,我试图在docker映像中复制我从CLI执行的操作。 我在全球范围内安装了一个npm包,并尝试运行它 npm已成功安装,但CMD失败,出现mup:command not found FROM ubuntu:latest #... # Install mup RUN npm install mup -g CMD ["/bin/bash", "-c", "mup ${*}"] 您没有在Docker容器中指定用户,因此容器中的命令以root用户身份运行 mup的默认全局安装位置是/usr/lo

我试图在docker映像中复制我从CLI执行的操作。 我在全球范围内安装了一个npm包,并尝试运行它

npm
已成功安装,但CMD失败,出现
mup:command not found

FROM ubuntu:latest

#...

# Install mup
RUN npm install mup -g

CMD ["/bin/bash", "-c", "mup ${*}"]

您没有在Docker容器中指定用户,因此容器中的命令以root用户身份运行

mup
的默认全局安装位置是
/usr/local/bin/mup
。Ubuntu 18.04中根用户的默认
PATH
环境变量不包含
/usr/local/bin

root@localhost:/# whoami
root
root@localhost:/# echo $PATH
/bin:/sbin:/usr/bin:/usr/sbin:

您可以创建在其
路径中包含
/usr/local/bin
的用户,或者调整根用户的
路径
以包含
/usr/local/bin
,或者使用绝对路径,
/usr/local/bin/mup
,在Dockerfile中。

请运行入口点设置为bash的容器,并找出mup的位置。然后相应地更新CMD。