2017-04-22 22 views
0

我有一個碼頭圖像https://github.com/carnellj/spmia-chapter1它找不到它的CMD ./run.sh可執行文件,儘管它在文件系統中。sh在碼頭圖像在Windows 10上看不到可執行文件

我能夠運行在容器/ bin/sh的,可以和我的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的沒有找到./run.sh雖然它的存在在文件中系統,正如ls run.sh所證明的那樣。此外,貓顯示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 

當我運行從SH vi和run.sh的內容複製到一個新的文件myrun.sh並myrun.sh可執行文件,我可以執行。 /myrun.sh和春季服務啓動。

這是怎麼回事?爲什麼sh不會在文件系統中看到一個可執行文件? PATH中的可執行文件或手動添加的可執行文件運行良好。

我在Windows 10上運行的泊塢

回答

1

確定的原因是,run.sh與碼頭工人像在Windows行尾創建如果你看看有自動LF-> CRLF轉換。一種可能的解決方案是告訴git不要轉換行尾。