当我重定向输出时,Python程序未在Docker容器的Shell脚本中运行

时间:2018-10-01 12:17:00

标签: python linux bash docker rasa-core

在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中似乎不起作用。

2 个答案:

答案 0 :(得分:0)

你好无法发表评论,所以我在这里写...

您是否尝试使用重定向与其他命令(例如ls)一起输出。 还有一点,您为码头工人准备的基本映像是高山的吗? alpine非常轻巧,因此如果要使用它们,则必须安装很多东西,因此,如果您使用的是alpine版本,则它本身并不提供重定向,但我会惊讶地发现它。 最后,为什么不在py脚本中写一行使其写入文件的行。

答案 1 :(得分:0)

以下是我在docker文件中的命令

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

通过搜索,我发现docker文件中的命令从shell更改为bash,它似乎起作用了,发现bash具有简单的shell命令所缺少的一些额外功能。

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