2017-09-10 16 views
0

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 

私は問題の建物を持っていないとMacにこれを実行しているがWindowsの場合(Docker for windows)私はそれを実行できず、このメッセージを受け取りました:

: not found myworkdir/start: line 4: /myworkdir/start: line 6: syntax error: unexpected word (expecting "do")

もし誰かがこれに精通し、解決方法を知っていれば、助けてください!

+0

イメージを再構築しますか? –

+0

Windowsでファイルを編集しましたか?これはWindowsのエンドオブラインの問題でしょうか? – larsks

+0

私はポストで言ったように、Windows上でファイルを編集していませんが、問題なくMac OSでこれを実行します。だから、私はWindows上で同じ動作を期待していた。つまり、それはドッカーを使用する利点です。 –

答えて

1

例えば、スクリプトstartで文字\rを削除しよう: sed -i 's/\r//g' start は、その後のウィンドウにスクリプトstartをコピーして、スクリプトが何をしようとしている何

+0

ありがとうございました!!!これは問題を解決する –

関連する問題