我试图在启动后在docker容器中运行简单的脚本。最初,以前的开发人员决定在内部使用s6。
#!/usr/bin/execlineb -P
foreground { sleep 2 }
nginx
[当我尝试开始时,我收到此消息
execlineb: usage: execlineb [ -p | -P | -S nmin | -s nmin ] [ -q | -w | -W ] [ -c commandline ] script args
看起来好像在执行此脚本或execline时出了点问题。
我正在将docker用于Windows10下的Windows,但是,如果有人尝试在ubuntu(或任何其他linux)中构建此容器,一切都可以。
有人可以帮助解决此类问题吗?
DockerImage:简单的alpine
根据我们对这个“巨大”问题的研究,我们找到了两种解决方法。肯定是特殊符号的问题,例如'\ r'
选项1 dostounix:
将dostounix安装在您的容器中(在docker文件中)
RUN apk --no-cache add \dos2unix \
再次运行您的sh脚本。
为{PathToYourFiles}中的文件运行;做\dos2unix $ file; \chmod a + xwr $ file; \完成
选项2 VsCode(或任何textEditor):