Программа Python не запускается в сценарии оболочки в контейнере докера, когда я перенаправляю вывод

1

В контейнере докера я предоставляю точку входа сценария оболочки, которая выглядит следующим образом:

#!/bin/bash
cat ./bot_domain.yml
cat ./first.yml
python -m rasa_core.train --domain ./domain.yml -s ./stories.md --out ./models &> output.txt
echo "done"

Я тренирую модель, используя оболочку в докере. Для выполнения программы требуется около минуты, но когда я перенаправляю выходные журналы обучения на

output.txt 

Кажется, он не выполняется и сразу переходит к следующей команде оболочки. Если я не перенаправляю выходные журналы в txt файл, он работает нормально. как ниже

python -m rasa_core.train --domain ./domain.yml -s ./stories.md --out ./models

Я попробовал выполнить тот же сценарий оболочки на локальном компьютере без докеров, он, похоже, правильно перенаправляет выходные журналы. Только в докере это не работает.

  • 0
    Является ли каталог, в котором output.txt записан для записи для текущего пользователя?
  • 0
    Уместно ли, что ваша программа использует Python? Если нет, отредактируйте свой вопрос, чтобы уменьшить его сферу, чтобы приблизиться к чему-то вроде минимального воспроизводимого примера .
Показать ещё 2 комментария
Теги:
docker
rasa-core

2 ответа

0
Лучший ответ

Следующей была моя команда в файле докера

CMD ["sh", "run.sh"]

Я изменил команду в файле docker от shell до bash, и, похоже, это сработало, и я обнаружил, что у bash есть некоторые дополнительные функции, отсутствующие в простой командной оболочке.

CMD ["/bin/bash", "run.sh"]
0

Привет не могу комментировать, поэтому я пишу здесь...

Вы пытались использовать перенаправление для вывода с помощью другой команды, например ls. Другой вопрос, каково ваше основное изображение для вашего докера, это альпийский? alpine очень легкий, поэтому есть много вещей, которые вы должны установить, если хотите их использовать, поэтому, возможно, если вы используете альпийскую версию, это не обеспечивает перенаправление, но я бы нашел это на удивление. И, наконец, почему вы не пишете строки в своем скрипте py, которые заставляют его писать в файле.

  • 0
    PS вы пробовали command |& tee output.txt cf askubuntu.com/questions/420981/…
  • 0
    Мое базовое изображение - растяжение Python, и да, другие выходные данные правильно передаются в файл, только этот не передается
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню