Чтобы проверить файл на macOS, сначала посмотрите на индикатор удаленного подключения VS Code, затем подтвердите путь к файлу и место его фактического расположения. Окно Dev Container подключено к контейнеру, но файлы рабочей области могут быть смонтированы с вашего Mac; в других конфигурациях контейнеров файлы хранятся только внутри самого контейнера. Индикатор окна сообщает о контексте подключения, в то время как конфигурация рабочей области и проверки файловой системы помогают установить, где именно хранится файл. В руководстве по Dev Containers для VS Code описывается как удаленный контекст, так и пример проекта, сопоставленного с локальной файловой системой.
Проверьте индикатор удаленного подключения окна
Посмотрите в левый нижний угол окна VS Code. При подключении Dev Container в строке состояния VS Code отображается элемент удаленного управления. Нажмите на него, чтобы открыть команды, относящиеся к данному удаленному контексту. Этот индикатор служит полезной первичной проверкой: он показывает, подключено ли данное окно к удаленной среде, но сам по себе не говорит о том, где физически расположены файлы рабочей области — в папке на Mac или в томе контейнера. В руководстве по VS Code указано, что данный элемент демонстрирует, является ли текущий контекст локальным или удаленным. Руководство по Dev Containers
Если вы не видите индикатор удаленного подключения, это еще не является окончательным доказательством того, что конкретная вкладка редактора относится к файлу на Mac. Возможно, вы просматриваете несохраненный документ без названия, отдельный файл, открытый вне рабочей области, или окно, подключенное через другую функцию удаленного доступа. Прежде чем делать выводы, проверьте активный файл и контекст его рабочей области.
Проверьте, к какой папке относится активный файл
В Проводнике найдите файл и обратите внимание на папку рабочей области над ним. Щелкните правой кнопкой мыши по файлу и выберите Reveal in Finder («Показать в Finder»), если этот пункт доступен. В документации VS Code это действие macOS описано как переход к файлу или папке в Finder. Если Finder показывает файл в дереве каталогов вашего Mac, это подтверждает локальный путь. Если файл находится в удаленном окне, а пункт Reveal in Finder недоступен или не указывает на копию на Mac, не предполагайте сразу, что файл локальный; перейдите к проверкам через терминал и конфигурацию контейнера. Документация по пользовательскому интерфейсу VS Code
Вы также можете открыть палитру команд с помощью комбинации ⇧⌘P и найти команду Copy Path of Active File («Копировать путь к активному файлу»). Скопированный путь поможет вам определить, какой именно путь VS Code связывает с файлом. Путь вида /workspace/app.js характерен для рабочей области контейнера Linux, тогда как путь, начинающийся с /Users/, типичен для домашнего каталога Mac — однако пути являются лишь подсказками, а не доказательством. Контейнер может монтировать папку Mac по пути /workspace, поэтому один лишь путь внутри контейнера не дает ответа на вопрос, где хранятся данные. Команда и сочетание клавиш описаны в справочнике стандартных сочетаний клавиш.
Используйте встроенный терминал для определения среды
Откройте Terminal > New Terminal («Терминал» > «Создать терминал») в том же окне и выполните следующие команды, предназначенные только для чтения:
pwd
uname -s
По умолчанию терминал запускается в папке рабочей области. В macOS команда uname -s обычно выводит Darwin; в контейнере разработки на базе Linux она, как правило, возвращает Linux. Если терминал показывает Linux, а индикатор удаленного подключения отображает контекст Dev Container, значит, командная оболочка работает в среде контейнера. VS Code отмечает, что встроенный терминал использует оболочку текущего контекста и запускается в корневом каталоге рабочей области. Основы работы с терминалом
Эти команды определяют среду терминала и текущий каталог; они не подтверждают, является ли папка рабочей области привязкой с монтированием (bind mount) с вашего Mac или данными, хранящимися в томе контейнера. Чтобы выяснить это различие, изучите файл .devcontainer/devcontainer.json проекта или конфигурацию Compose на наличие таких параметров, как workspaceMount, workspaceFolder или монтирование томов (volume mounts). В руководстве VS Code по удаленному хосту Docker монтирование bind mount и именованные тома описаны как раздельные способы предоставления файлов рабочей области. Разработка на удаленном хосте Docker
Интерпретируйте результат перед редактированием
Оценивайте все признаки в совокупности. Локальное окно VS Code, путь Mac в Finder и вывод Darwin во встроенном терминале указывают на локальное редактирование. Индикатор Dev Container и терминал с Linux показывают, что VS Code работает в контексте контейнера. Чтобы решить, сохраняются ли правки на Mac или внутри контейнера, также установите, как именно смонтирована рабочая область: привязка bind mount может открывать доступ к файлам Mac внутри контейнера, тогда как именованный том может содержать файлы в хранилище, управляемом Docker.
Если это различие имеет значение перед внесением изменений, проверьте конфигурацию монтирования или уточните у автора настройки проекта, какое хранилище использует рабочая область. Не делайте вывод о наличии резервной копии на Mac только на основании пути внутри контейнера и не предполагайте, что файлы хранятся исключительно в контейнере, лишь потому, что терминал работает в Linux. Эти проверки предоставляют информацию об активном окне VS Code и его рабочей области; они не определяют, существует ли другая копия в ином месте.
Источники
Руководство по Dev Containers — Visual Studio Code
Документация по пользовательскому интерфейсу VS Code — Visual Studio Code
Справочник стандартных сочетаний клавиш — Visual Studio Code
Основы работы с терминалом — Visual Studio Code
Разработка на удаленном хосте Docker — Visual Studio Code