Рейтинг:0

Ubuntu и докер не могут запустить исполняемый файл из сценария bash

флаг pe

У меня есть следующий файл, расположенный внутри контейнера докеров (ubuntu: 18.04). Когда я пытаюсь запустить его с docker exec -it index_sql /dbrestore/init.sh, выдает следующую ошибку

Сбой выполнения среды выполнения OCI: сбой выполнения: container_linux.go:380: запуск вызванный процесс контейнера: ошибка формата exec: неизвестно

Скрипт внутри файла:

#!/бин/баш
index_sql /opt/mssql-tools/bin/sqlcmd -i /dbrestore/dbCreate.sql -S 127.0.0.1 -U sa -P ПАРОЛЬ
/opt/mssql-tools/bin/sqlpackage/a:Import/sf:/dbrestore/db.bacpac/tsn:localhost,1433/tdn:index_new/tu:sa/tp:ПАРОЛЬ
/opt/mssql-tools/bin/sqlcmd -i /dbrestore/dbPrepare.sql -S 127.0.0.1 -U sa -P ПАРОЛЬ

Когда строка «/opt/mssql-tools/bin/sqlpackage» удалена, все работает нормально.

Когда я пытаюсь бежать

 docker exec -it index_sql/opt/mssql-tools/bin/sqlpackage/a:Import/sf:/dbrestore/db.bacpac/tsn:localhost,1433/tdn:index_new/tu:sa/tp:ПАРОЛЬ

или SSH в док-контейнер и запустите

/opt/mssql-tools/bin/sqlpackage/a:Import/sf:/dbrestore/db.bacpac/tsn:localhost,1433/tdn:index_new/tu:sa/tp:nz6#EvGPkg7UQ9Xq 

Это все работает нормально.

Может ли кто-нибудь помочь мне и сказать, почему следующая команда не работает, когда она находится в файле init.sh, но отлично работает при запуске вручную?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.