首页 > 解决方案 > 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

解决方案


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

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

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

您可以在 Dockerfile 中创建一个用户/usr/local/bin,或PATH调整 root 用户PATH以包含/usr/local/bin,或使用绝对路径。/usr/local/bin/mup


推荐阅读