我在容器中准备的 /etc/profile.d/myscript.sh (从主机安装)中有自己的脚本,但是在docker运行时无法执行
$ docker run -it -v /etc/profile.d/myscript.sh:/etc/profile.d/myscript.sh centos7 myscript arg1
docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"myscript\": executable file not found in $PATH": unknown.
如果docker在没有任何命令的情况下运行,那么我直接将其附加到容器中,脚本将起作用。 脚本在/etc/profile.d/下,我可以在容器中运行myscript
[root@c5f121d37ca5 /]# myscript
Usage:
myscript [arg1] [arg2]
...
[root@c5f121d37ca5 /]#
[root@c5f121d37ca5 /]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
我不知道为什么我的脚本无法在docker run中执行。
我用于映像的Dockerfile只是做一些基本的事情,会更新,安装一些pkg。
赞赏是否有人请我阐明如何使docker run上的myscript可执行文件?还是我需要在dockerfile上工作的任何东西?
我还在Dockerfile中添加了脚本的路径并重新运行,但仍然遇到相同的错误。
ENV PATH=$PATH:/etc/profile.d/
我检查了/etc/profile.d/在容器内的PATH中。
$ docker run centos7 env | grep PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/etc/profile.d/