工具的初衷是好的,但是工具如果不加以正确使用、或者不够完善。那将带来的是灾难。
使用Dockerfile进行镜像构建。里面有这么一行:
我在ENTRYPOINT处指定了一个脚本。它是在构建镜像时,从一个目录中copy进去的。它将会在docker run时会去执行run.sh里的内容。
但神奇的问题发生了。我docker build构建镜像成功完毕。docker run启动镜像时报错:
就这么一行!!我启动时指定镜像没有加-d后台启动,打印的实时日志。就一行这玩意':No such file or directory
没了,别的什么都没打印。
WTF!
漫长排查路~~~~
文件目录没问题;
Dockerfile语法查了查,没问题;
sh脚本内容看了下,也没发现啥问题。
问题在哪呢??
尝试在["/run.sh","-x"] 这里尝试加过-t、-x、-c啥的。基本都试了一遍。想着至少能定位下行号,或者多打印点什么出来,但没有。日志仍旧只有那一行,一个字符都不带多的。
下去抽颗smoke吧,这种问题就是来搞心态的。
迎着小风,闻着草味,思绪繁杂
忽然想起来,以前碰到过sh脚本的格式问题导致的报错。叫什么bad inte... no such file directory(时间久记不清了,后查证叫:bad interpreter: No such file or directory)。
这俩好像看起来有点像。
再一想,好像更像了。
赶紧掐灭 上去逮着vi run.sh。:set ff 一看。挖槽 真的是dos....
万只草泥马开始奔袭。
:set ff=unix修改保存后。重新构建启动,可以了!!
忍不住想吐槽一句:这报错报的也太人性化了,跟个鬼一样。