Ошибка ввода / вывода

Я создаю файл и показываю его содержимое внутри виртуальной машины с помощью 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 ответ

Решение

Попробуйте отключить опцию "безопасная запись" в настройках PhpStorm: Settings/Preferences | Appearance & Behavior | System Settings --> Use "safe write"...

С этой опцией IDE сначала записывает во временный файл (например, file.__temp_jb__) и только потом переименовывает его в реальную цель (file.txt).

Похоже, что такие манипуляции (исходный файл удаляется и заменяется другим) каким-то образом конфликтует с вашим сценарием.

Другие вопросы по тегам