Разрешение на доступ к конфигурации контейнера сервера Synapse/Matrix/файлу отказано

Разрешение на доступ к конфигурации контейнера сервера Synapse/Matrix/файлу отказано

Ответ размещен мной ниже, пока не могу принять свой собственный ответ

Я работаю над клиентом чата, для разработки я использую настройку docker, которая использует команду 'generate' для создания файла конфигурации, который вы можете настроить и использовать для запуска фактической службы. На моем настольном компьютере он работает нормально, однако при попытке запустить его на respberry или отдельном жестком диске на моем ноутбуке он выдает ошибку обработчика файлов в процессе сборки, сообщающую, что разрешение было отклонено.

Я, возможно, полный нуб, но я изменил разрешения точки монтирования папки на своем ноутбуке, и на Raspberry установлены разрешения для этой папки.

Docker также настроен на работу без ввода sudo для каждой команды.

Вот коды разрешений для рабочего и нерабочего файла конфигурации.

# Auto generated, working local
-rwxrwxrwx 1 root root 103443 <date> <filename>
# Auto generated not working pi and laptop
-rw-r--r-- 1 991 991 106030 <date> <filename>

Я просто неправильно настроил свои жесткие диски? Я получаю эту ошибку на своем pi, независимо от того, находится ли он на разделе ОС по умолчанию или нет. Я могу запустить и обслуживать django с обратным прокси без проблем.

Чат-сервис, который я создаю, — matrix/synapse. Вот папка docker на репозитории сервера synapse с базовой настройкой. Файл, вызывающий проблемы, — homeserver.yml, который генерируется из:

docker-compose run --rm synapse generate

решение1

На самом деле это не махинации с правами доступа Linux в корне

Это могло быть побочным эффектом последнего пуша репозитория Synapse Docker, поскольку у меня это происходило на нескольких устройствах. Я решил это, самостоятельно указав часть ручной настройки для Docker. Решение может оказаться полезным для других проблем, связанных с конфигурацией.

Решил, точное решение можно было бы применить и получше, наверное

Сценарий:

Сгенерировать конфигурацию длясинапссервер, который будет использоваться для создания docker-контейнера для synapse. Цель — использовать для разработки матрицаклиент.

Проблема:

После успешного создания конфигурации ('homeserver.yaml') сборка Synapse с использованием этой конфигурации выдаст ошибку Permission с трассировкой стека Python, указывающей на невозможность прочитать файл (внутри контейнера), result service exit 1и отсутствие docker logs service.

Решение:

некоторые из этих настроек можно задать с помощью переменных окружения, см. файл readme synapse После проверкиматрица/синапсdocker repo Я заметил недавнюю и частую историю обновлений. Либо моя система все испортила, либо проблема в последней настройке конфигурации для контейнера. Поэтому я сделал некоторые обычно автоматизированные вещи сам.

  • создал папки, которые synapse использует с conf ('homeserver.yml'). Если используется монтирование bind (как на странице репозитория), том docker будет здесь. /var/lib/docker/volumes/<name of bind mount>/_data Здесь вы хотите создать media_store, uploads, logs.

  • Найдите имена созданных папок в «homeserver.yml» и убедитесь, что пути указывают на них.

  • Назначена группа по умолчанию и все в соответствии с рекомендациями репозитория Synapse.

    # UID & GID default to 991
    chown 991:991 media_store/ uploads/ logs/
    
    
  • Укажите обработчику настроек журнала папку журналов, файл журнала не существует на момент настройки этой конфигурации. Файл обработчика журнала можно найти в .log.config

    handlers:
     file:
         filename: /data/logs/homeserver.log
    

Связанный контент