输入/输出错误

时间:2017-10-31 09:20:58

标签: docker phpstorm virtualbox docker-volume

我使用Docker创建文件并在虚拟机内显示其内容:

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

一切都好。

但是当我在PhpStorm中更改文件时,我收到一条错误消息约20秒:

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

这种行为的可能原因是什么?如何诊断?

(Docker 17.10,VirtualBox 5.1.30,PhpStorm 2017.2.4)

1 个答案:

答案 0 :(得分:1)

尝试在PhpStorm设置中禁用“安全写入”选项:Settings/Preferences | Appearance & Behavior | System Settings --> Use "safe write"...

启用该选项后,IDE会首先写入临时文件(例如file.__temp_jb__),然后将其重命名为实际目标(file.txt)。

看起来这样的操作(原始文件被删除并被另一个文件替换)与您的脚本发生冲突。