Я был озадачен тем, как docker найти файл execalbe:
Dockfile:
FROM alpine:3.12.0
ADD for.sh /bin/abc
RUN chmod +x /bin/abc
RUN which abc
# case 1: /bin/sh: abc: not found
CMD abc
# case 2: succ
CMD sh /bin/abc
# case 3: succ
CMD /bin/sh /bin/abc
журнал case 1:
Step 1/5 : FROM alpine:3.12.0
---> a24bb4013296
Step 2/5 : ADD for.sh /bin/abc
---> bdebf36951e5
Step 3/5 : RUN chmod +x /bin/abc
---> Running in 238cfcd6540b
Removing intermediate container 238cfcd6540b
---> 7eb4c0f63b56
Step 4/5 : RUN which abc
---> Running in f297512e9af9
/bin/abc
Removing intermediate container f297512e9af9
---> a046f42f7fcb
Step 5/5 : CMD abc
---> Running in 1e8c65974c30
Removing intermediate container 1e8c65974c30
---> 5275d3f6cdc7
Successfully built 5275d3f6cdc7
Successfully tagged hello:latest
[liuqing18->T5P hello]$ docker run -it -v ~/Desktop/tmp:/log hello
/bin/sh: abc: not found
Я добавляю ab c в $ PATH, почему не удается найти ab c? Я также пробовал относительный путь, не работает. Как docker найти найти?