2017-04-22 7 views
0

Ich habe ein Docker Bild https://github.com/carnellj/spmia-chapter1, die ihre CMD ./run.sh ausführbare Datei nicht finden, obwohl es dort im Dateisystem ist.SH in Docker Bild nicht unter Windows 10 ausführbar

konnte ich das Programm/bin/sh im Behälter, und ich kann ls -l:

D:\Dokumente\ws\spring-microservices\spmia-chapter1 (master) 
λ docker run -i -t johncarnell/tmx-simple-service:chapter1 /bin/sh 
/# ls -l 
total 56 
drwxr-xr-x 2 root  root   4096 Mar 3 11:20 bin 
drwxr-xr-x 5 root  root   360 Apr 22 07:10 dev 
drwxr-xr-x 1 root  root   4096 Apr 22 07:10 etc 
drwxr-xr-x 2 root  root   4096 Mar 3 11:20 home 
drwxr-xr-x 1 root  root   4096 Apr 22 06:01 lib 
drwxr-xr-x 5 root  root   4096 Mar 3 11:20 media 
drwxr-xr-x 2 root  root   4096 Mar 3 11:20 mnt 
dr-xr-xr-x 123 root  root    0 Apr 22 07:10 proc 
drwx------ 1 root  root   4096 Apr 22 07:10 root 
drwxr-xr-x 2 root  root   4096 Mar 3 11:20 run 
-rwxr-xr-x 1 root  root   245 Apr 22 06:50 run.sh 
drwxr-xr-x 2 root  root   4096 Mar 3 11:20 sbin 
drwxr-xr-x 2 root  root   4096 Mar 3 11:20 srv 
dr-xr-xr-x 13 root  root    0 Apr 22 07:10 sys 
drwxrwxrwt 2 root  root   4096 Mar 3 11:20 tmp 
drwxr-xr-x 1 root  root   4096 Mar 7 01:04 usr 
drwxr-xr-x 1 root  root   4096 Mar 7 01:04 var 
/# ./run.sh 
/bin/sh: ./run.sh: not found 
/# ls run.sh 
run.sh 

/bin/sh nicht ./run.sh findet, obwohl es in der Datei gibt es System, wie ls run.sh. Auch Katze zeigt den Inhalt des run.sh:

/ # cat run.sh              
#!/bin/sh                
echo "********************************************************"  
echo "Starting simple-service "          
echo "********************************************************"  
java -jar /usr/local/simple-service/simple-service-0.0.1-SNAPSHOT.jar 

Wenn ich vi von sh laufen und den Inhalt der run.sh in eine neue Datei kopieren und myrun.sh myrun.sh ausführbar machen, ich ausführen kann. /myrun.sh und der Frühlingsdienst beginnt.

Was geht hier vor? Warum sollte ich keine ausführbare Datei sehen, die im Dateisystem vorhanden ist? Ausführbare Dateien aus PATH oder ausführbare Dateien, die ich manuell hinzufüge, laufen einwandfrei.

Ich bin mit Docker auf Windows 10.

Antwort

1

OK ist der Grund, run.sh mit Windows-Zeilenenden im Docker Bild erstellt wird, wenn Sie mit automatischer LF- überprüfen> crlf Konvertierung. Eine mögliche Lösung besteht darin, git zu verständigen, Zeilenendungen nicht zu konvertieren.

Verwandte Themen