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映像