Shell脚本在Docker for Windows上失败

我正在尝试在Docker for Windows上运行映像时遇到问题。

我有一个像这样的Dockerfile:

FROM openjdk:8-jre-alpine WORKDIR /myworkdir COPY path/tomyproject/src/main/bin/start /myworkdir/start ... EXPOSE 8080 CMD [ "sh", "/myworkdir/start" ] 

这是一个失败的“开始”文件:

 #!/bin/sh SCRIPT="$0" # set the environment variables received from the command line for i; do case "$i" in *=*) echo $i ; key=${i%=*} value=${i#*=}; export $key=$value esac done 

我没有问题构build和运行到Mac,但在Windows(Docker for Windows)我不能运行它,并得到这样的消息:

:找不到myworkdir /开始:第4行:/ myworkdir / start:第6行:语法错误:意外的词(期待“做”)

如果有人熟悉这一点,并知道如何解决它,请帮助!

尝试删除脚本start的字符\r ,例如: sed -i 's/\r//g' start然后将脚本start复制到窗口并重build映像