Задать вопрос
delphinpro
@delphinpro
frontend developer

Существует ли возможность комфортной работы в связке Docker+Windows+WSL2+Vite?

Проблемы:
1. Довольно длительный отклик от приложения (загрузка страницы, первый запрос около 5 сек) .
2. Не обновляется приложение, запущенное в докере при изменении исходников. Имеется ввиду фронтэнд, с запущенным Vite в dev-режиме.

В доке Vite есть следующее предупреждение

When running Vite on WSL2, file system watching does not work when a file is edited by Windows applications (non-WSL2 process). This is due to a WSL2 limitation. This also applies to running on Docker with a WSL2 backend.

To fix it, you could either:

Recommended: Use WSL2 applications to edit your files.
It is also recommended to move the project folder outside of a Windows filesystem. Accessing Windows filesystem from WSL2 is slow. Removing that overhead will improve performance.
Set { usePolling: true }.
Note that usePolling leads to high CPU utilization


Мне непонятны два момента:

1. Use WSL2 applications to edit your files. – что это за приложения?

2. It is also recommended to move the project folder outside of a Windows filesystem – что имеется ввиду? Создать отдельный раздел на диске с ext4 или как?
  • Вопрос задан
  • 75 просмотров
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 4
@rPman
Use WSL2 applications to edit your files

wsl это виртуалка майкрософт, в которой ты запускаешь linux приложения docker и т.п. Соответственно это любое приложение linux (среды разработки, скрипты, утилиты обновления проекта, git и т.п.)

Если ты с помощью windows приложений будешь редактировать файлы, находящиеся в linux контейнере, то приложения linux, запущенные внутри wsl2, не будут видеть эти изменения (буквально файл может остаться старым содержимым какое то время, а не только события изменений), там файловая система сделана каким то хаком, поэтому лезть туда из windows, пока запущен этот wsl не советую, так как возможны глюки, решаемые только перезагрузкой (например удалить файл в одном месте и одновременное его изменение в другом)

p.s. напомню что многие утилиты linux имеют для windows свои аналоги, иногда там есть некоторые несовместимости по именованию файлов и путей (символ разделителя каталога '/' и '\'), поэтому git для windows отработает как windows приложение а вот запущенный из wsl - как linux.

It is also recommended to move the project folder outside of a Windows filesystem
просто из windows не нужно вообще заглядывать в каталог linux контейнера

p.p.s. важное замечание, все вышесказанное для wsl1, но если используетсч wsl2 то файл виртуалки будет образом файловой системы, т.е. один большой файл .vhdx понятно что из windows его ни открывать ни редактировать не нужно (да и сложно будет, ведь подключить как диск его можно, но вот поддержки linux файловых систем нужно добиться, добавив сответствующий драйвер, и ни в коем случае это нельзя делать одновременно, это вообще порушит файловую систему в образе и можно потерять файлы)
Ответ написан
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
https://www.virtualbox.org/ - намного более удобная и функциональная система виртуализации. Создаёте виртуалку с линуксом, там же ставите докер и спокойно работаете с ней через SSH. Если ваш редактор код не поддерживает SSH - то можно просто расшарить линуксовую ФС и спокойно с ней работать из под винды по стандартным сетевым протоколам типа самбы.
Ответ написан
Комментировать
smilingcheater
@smilingcheater
Единственный способ комфортно работать с WSL - это хранить все файлы проекта внутри WSL.
Не на виндовых дисках C,D,..., а именно через терминал разворачивать например в домашней папке пользователя свой код и запускать его оттуда.
Если это сделать - то код из WSL на винде работает очень быстро.
Я на постооянке работаю именно так - весь код клонируется внутрь WSL, через phpStorm Открываю и редактирую его с диска линукса. Там же запущен вебсервер/база/докеры/ и т.д. - всё открывается мгновенно.
Ответ написан
Комментировать
> 1. Use WSL2 applications to edit your files. – что это за приложения?
VS Code это умеет. Он внутри WSL/контейнере поднимает сервер на nodejs, который и редактирует файлы внутри WSL/контейнера.

> 2. It is also recommended to move the project folder outside of a Windows filesystem – что имеется ввиду? Создать отдельный раздел на диске с ext4 или как?

Для WSL это будет в иерархии /home, не в иерархии /mnt/c/...Users/...

PS Virtualbox не нужно
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы