2017-04-10 21 views
0

私のDockerfileのエントリポイントCMDは、アプリケーションを実行する前に環境変数に基づいてローカルファイルを変更するシェルスクリプトを実行します(Flask)。シェルスクリプトは次のようになります。エントリポイントコマンドの一部としてファイルを変更できません

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

ただし、結果のファイルがゼロバイトであることがわかりました。何が起こっているのでしょうか?

ありがとうございました。

答えて

0

問題を再現できますが、説明できません。他の答えが続くかもしれない。

ただし、ここでは問題を解決する解決策があります。
出力用に入力用とは異なるファイル名を使用します。

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

また、-i.bakオプションを使用します。

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

私は正確に何が起こっているかを推測することができます
たぶん、あなたのパイプの出力は入力が読み込まれる前に(非添付)を書き込むために開かれています。

+0

これを刺してくれてありがとう。上記の私のために働いたものを見てください。 – Raj

+0

i.bakのトリックは私のために働いたようです。ありがとう! – Raj

関連する問題