无法将文件修改为入口点命令的一部分

我的Dockerfile的入口点CMD在执行我的应用程序(Flask)之前执行一个shell脚本来修改一个基于环境variables的本地文件。 shell脚本就像这样:

 cat static/login.html | sed "s/some_match/some_substitute/g" > static/login.html 

但是,我发现生成的文件是零字节。 任何想法可能在做什么?

谢谢。

我可以重现你的问题,但不能解释它。 也许还有其他答案。

但是,这是一个解决问题的解决scheme:
输出使用不同的文件名称而不是input。

cat input.txt | sed "s/a/b/g" > input2.txt

或者,使用-i.bak选项。

sed -i.bak "s/b/a/g" input.txt

我只能猜测究竟发生了什么:
也许在input读取之前,pipe道的输出是打开的(非附加)。