2017-10-31 23 views
0

私は、ファイルを作成し、ドッカーを使用して、仮想マシンの内部で、その内容を示しています。入力/出力エラー

touch file.txt 
docker run \ 
    --rm -it \ 
    --volume $(pwd):/app \ 
    --workdir /app \ 
    alpine:3.6 \ 
    sh -c '\ 
     while : ; do \ 
      cat file.txt ;\ 
      sleep 1 ;\ 
     done \ 
    ' 

その後、私はローカルにファイルを変更します。

date > file.txt 

すべてがOKです。

しかし、私はPhpStormでファイルを変更したときに、私は約20秒間のエラーメッセージが表示されます:

cat: can't open 'file.txt': I/O error 

この動作の考えられる理由であるとどのように私はそれを診断することができますか?

(ドッカー17.10、VirtualBoxの5.1.30、PhpStorm 2017年2月4日)

+1

私はここで何が起こっているのかよく分かりません(ドッカーやLinuxの人ではありません)。PhpStormの設定で "安全な書き込み"オプションを無効にしてみてください。このオプションを有効にすると、IDEはまず一時ファイル(たとえば 'file .__ temp_jb__')に書き込み、次にターゲット(' file.txt')に名前を変更します。たぶんあなたのスクリプトと何とか矛盾します... – LazyOne

+0

ああ、ありがとう、それは働いた。 :) – zored

答えて

1

がPhpStormの設定で "安全書込み" オプション無効にしてみてください:そのオプションにSettings/Preferences | Appearance & Behavior | System Settings --> Use "safe write"...

を(IDEは、最初の一時ファイルに書き込む有効例えばfile.__temp_jb__)、それを実際のターゲット(file.txt)にリネームするだけです。

このような操作(元のファイルは削除され、別のファイルに置き換えられる)のように見え、何らかの形でスクリプトと競合します。