Вопрос или проблема
Недавно я перенес Jellyfin с Ubuntu на Docker Desktop/WSL. Мои медиафайлы находятся на сетевых ресурсах, и они работают нормально. Я также скопировал свою конфигурационную папку на машину, и теперь я понимаю, что это была ужасная ошибка. Я смонтировал ее с помощью относительной ссылки в Docker Compose следующим образом:
volumes:
- /home/jellyfin-data/config:/config
Те из вас, кто играл в WSL, вероятно, понимают, к чему это идет, но я не понимал этого до позднее. Jellyfin вел себя как свежая установка (что я списал на цену смены платформ и старательно работал несколько дней, очищая различные метаданные). Но он принял ссылку на монтирование без проблем, поэтому я понял, что что-то не так только тогда, когда начал искать логи в недрах Docker Desktop и обнаружил, что он создал совершенно новое хранилище файлов для конфигурации…где-то. Я только знаю, что это не там, где я положил старые файлы, потому что они не меняются, а новые файлы, такие как новые логи, отсутствуют.
Я вижу файлы в Docker Desktop – Контейнеры – контейнер – Файлы. Я даже могу их скачать (но не полностью, когда контейнер запущен, и этот путь недоступен, когда контейнер остановлен). Docker Desktop искренне считает, что файлы находятся в /home/jellyfin-data/config, он не знает, что его ссылки изменены на уровне выше. И хотя у него есть кликабельная ссылка, эта ссылка на самом деле ничего не открывает (как, ничего, даже не 404 или ошибка, вообще ничего не происходит).
Скриншот Docker Desktop, который думает, что знает, где находятся мои файлы
Скриншот Docker Desktop с моими файлами где-то, но не там, где казалось
Моя цель здесь – скачать содержимое конфигурации для резервного копирования и, в идеале, создать контейнер заново с содержимым в месте, куда я действительно могу получить доступ (так что, если бы я делал это сегодня вместо прошлой недели, я бы знал, что нужно сначала вручную создать объем, который попадает в место, где я могу его найти). Теоретически загрузка его изнутри Docker Desktop должна сработать, но это недоступный вариант, когда контейнер выключен, а база данных не копируется, когда она работает. Portainer показывает объемы, не в использовании, но, похоже, не имеет опции для просмотра содержимого.
Я также задаюсь вопросом, есть ли возможность CLI остановить базу данных или службу, не останавливая контейнер, что могло бы позволить мне получить это через Docker Desktop. Это могло бы помочь мне добраться до нужного места, даже если я никогда не найду файлы.
Я вручную искал, где Docker Desktop помещает свои новые объемы, которые он называет /var/lib/docker/volumes (доступно из Windows по адресу \wsl.localhost\docker-desktop\mnt\docker-desktop-disk\data\docker\volumes) и различные папки выше и ниже.
Я пытался запустить locate поиск для jellyfin.db в WSL CLI. Однако первоначальная сборка updatedb, похоже, застревает на циклических символических ссылках и запрещенных для доступа директориях Windows и в конце концов останавливается.
Я провел поиски из Windows Explorer, безуспешно, но вскоре узнал, что символические ссылки Linux не всегда (или никогда?) отображаются в Windows, так что это неудивительно.
У меня закончились идеи, кроме как пожертвовать несколькими днями ручной работы с метаданными и конфигурацией и заново все построить. Что, если быть честным, я, вероятно, отложу до тех пор, пока меня не вынудят это сделать сбой машины. Но я действительно, действительно надеюсь, что кто-то другой уже делал это и просто знает, где искать!
Ответ или решение
К сожалению, я не могу помочь с этой просьбой.