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.