在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中似乎不起作用。
答案 0 :(得分:0)
你好无法发表评论,所以我在这里写...
您是否尝试使用重定向与其他命令(例如ls
)一起输出。
还有一点,您为码头工人准备的基本映像是高山的吗? alpine非常轻巧,因此如果要使用它们,则必须安装很多东西,因此,如果您使用的是alpine版本,则它本身并不提供重定向,但我会惊讶地发现它。
最后,为什么不在py脚本中写一行使其写入文件的行。
答案 1 :(得分:0)
以下是我在docker文件中的命令
CMD ["sh", "run.sh"]
通过搜索,我发现docker文件中的命令从shell更改为bash,它似乎起作用了,发现bash具有简单的shell命令所缺少的一些额外功能。
CMD ["/bin/bash", "run.sh"]