Docker-如何运行在构建期间安装的包?
我试图在docker映像中复制我从CLI执行的操作。 我在全球范围内安装了一个npm包,并尝试运行它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
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。