当我重定向输出时,Python 程序在 docker 容器中的 shell 脚本中没有 运行

Python program doesn't run in shell script in docker container when i redirect the output

在docker容器中我提供了一个shell脚本入口点,如下

#!/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"

我正在 docker 中使用 shell 训练模型。该程序需要大约一分钟的时间来执行,但是当我将训练的输出日志重定向到

output.txt 

好像没有执行,马上转到下一个shell命令。 如果我不将输出日志重定向到 txt 文件,它似乎工作正常。 如下

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

我尝试在没有 docker 的本地计算机上执行相同的 shell 脚本,它似乎正确地重定向了输出日志。只有在 docker 它似乎不起作用。

以下是我在 docker 文件

中的命令
CMD ["sh", "run.sh"]

我将 docker 文件中的命令从 shell 更改为 bash 并且它似乎有效,通过搜索我发现 bash 有一些额外的功能缺少简单的 shell 命令。

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