Вы устранили первую причину, проверив, что сценарий существует в контейнере с ls
.Это также устранило права доступа к файлам Linux.
Следующая возможная причина - ваш интерпретатор не находится в контейнере, а показывает скрипт, который мы видим, что он #!/bin/sh
.И /bin/sh
входит в ваш базовый образ.
Что я могу вспомнить, это переходы на строки Windows в файле, где-то отсутствующая библиотека или, возможно, инструменты безопасности, такие как SE Linux / AppArmor со строгой конфигурацией.,В этом случае, похоже, что перевод строки в Windows был причиной.Вам просто нужно настроить редактор для вывода с переводами в стиле Linux.В противном случае Linux ищет /bin/sh\R
для запуска (где \R
- возврат каретки), и эта команда не существует.
Это включено в мой DockerCon 18 talk , который включаетмножество других советов, которые вы можете найти полезными при запуске.