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

时间:2017-04-10 21:57:54

标签: bash docker sed

我的Dockerfile的入口点CMD执行shell脚本,以便在执行我的应用程序(Flask)之前根据环境变量修改本地文件。 shell脚本是这样的:

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

但是,我发现生成的文件是零字节。有什么想法可能会发生什么?

感谢。

1 个答案:

答案 0 :(得分:0)

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

但这是一个解决问题的解决方案:
输出使用不同的文件名而不是输入。

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

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

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

我只能猜测到底发生了什么:
在读取输入之前,可能会打开管道输出以进行写入(非追加)。