我写了一个映像,其中捆绑了utils以使用多个CLI运行命令。我想将其作为可执行文件运行,如下所示:
docker run my_image cli command
其中CLI是我的自定义CLI,而command是该CLI的命令。
构建映像时,我在Dockerfile中有以下说明:
ENV PATH="/cli/scripts:${PATH}"
如果我不将命令链接到容器,则上述方法有效。如果我链接命令,它将停止工作:
docker run my_image cli command && cli anothercommand
Command 'cli' not found,but can be installed with...
第一个命令起作用的地方,另一个命令失败的地方。
因此,逻辑结论是路径中缺少cli
。我试图用以下方法验证这一点:
docker run my_image printenv PATH
这实际上输出了容器PATH,一切看起来都很好。所以我也尝试链接此命令:
docker run my_image printenv PATH && printenv PATH
确实,这首先输出容器PATH,然后输出我系统的PATH。
这是什么原因?我该如何解决?