Запустите скрипт внутри контейнера Docker с хоста Windows 10 в cmd или powershell

#docker

#docker

Вопрос:

Мне нужно использовать программу, написанную кем-то другим в контейнере Docker (Docker Desktop версии 19.03.12 в Windows 10). Я создал файл сценария (bt.sh ) для запуска сторонней программы с правильными параметрами. Он находится в контейнере, в папке /root/FrMG_Files/, вместе с файлами данных, подлежащими обработке. Я могу без проблем запустить скрипт из контейнера (./bt.sh ) из папки /root/FrMG_Files.

Я хочу автоматизировать процесс, запустив скрипт с хоста Windows как часть большей последовательности. В Windows cmd или powershell я могу получить список файлов с помощью :

 docker exec -it -w /root/FrMG_Files container_id dir
  

Я попытался запустить скрипт со многими вариантами, такими как

 docker exec -it -w /root/FrMG_Files container_id ./bt.sh
docker exec -it -w /root/FrMG_Files container_id './bt.sh --cmd “command” host''
docker exec -it -w /root/FrMG_Files container_id "./bt.sh"
  

но ни один из них не сработал. Я получаю сообщение об ошибке:
Сбой выполнения OCI exec: сбой exec: container_linux.go: 349: запуск процесса контейнера вызвал «ошибку формата exec»: неизвестно

Скрипт запускается с

 docker exec -it -w /root/FrMG_Files container_id bash ./bt.sh
  

Первая строка скрипта — echo «Я в контейнере», и это работает. Другие команды не работают (команда не найдена).

Я был бы очень признателен за помощь в этом.

Большое спасибо!

Комментарии:

1. Почему вы хотите это сделать? Вы хотите запустить сценарий оболочки, поэтому использование bash имеет смысл

2. Для хоста Windows попробуйте использовать файл сценария Windows .. может быть .cmd файл

3. У меня есть тексты для анализа, которые хранятся в Excel. Скрипт VBA создает текстовые файлы и скрипт bash, копирует файлы и скрипт в контейнер Docker. У меня есть синтаксический анализатор в контейнере. Скрипт вызывает анализатор с параметрами. Затем другой скрипт VBA создает файл tar с помощью Docker exec в cmd, копирует файл tar на хост, извлекает его и копирует результаты в Excel для многовариантного анализа. Он хочет запустить скрипт bash с помощью docker exec, чтобы иметь одну программу VBA. Теперь я запускаю код VBA, перехожу к контейнеру для запуска сценария и возвращаюсь к VBA для запуска последней части.