Permissão/arquivo de configuração do contêiner do servidor Synapse/Matrix negado

Permissão/arquivo de configuração do contêiner do servidor Synapse/Matrix negado

Resposta postada por mim abaixo, ainda não posso aceitar minha própria resposta

Estou trabalhando em um cliente de chat, para desenvolvimento uso uma configuração do docker que usa um comando 'generate' para criar um arquivo de configuração que você pode ajustar e usar para iniciar o serviço real. Na minha área de trabalho, ele funciona bem, no entanto, ao tentar executá-lo em um respberry ou em um HD separado no meu laptop, ocorre um erro no manipulador de arquivos no processo de construção, informando que a permissão foi negada.

Posso ser um novato aqui, mas alterei a permissão do ponto de montagem da pasta no meu laptop e o Raspberry tem permissões definidas na pasta.

O Docker também está configurado para ser executado sem digitar sudo para cada comando.

Aqui estão os códigos de permissão para arquivo de configuração funcional e não funcional

# 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>

Será que não estou configurando corretamente meus discos rígidos? Recebo este erro no meu pi se estiver na partição padrão do sistema operacional ou não. Consigo inicializar e servir o Django com proxy reverso sem problemas.

O serviço de bate-papo que estou desenvolvendo é matriz/sinapse. Aqui está a pasta docker no repositório do servidor synapse com a configuração básica. O arquivo que apresenta problemas é homeserver.yml, gerado a partir de:

docker-compose run --rm synapse generate

Responder1

Na verdade, não é uma travessura de permissão do Linux na raiz

Isso pode ter sido um efeito colateral do push do repositório do docker synapse mais recente, já que isso estava acontecendo em vários dispositivos para mim. Eu resolvi isso especificando eu mesmo uma parte da configuração manual do docker. A solução pode ser útil para outros problemas relacionados à configuração.

Resolvido, a solução exata poderia ser aplicada de uma maneira melhor, provavelmente

Cenário:

Gere uma configuração parasinapseservidor que será usado para criar um contêiner docker para sinapse. O objetivo é usar para desenvolvimento de um matrizcliente.

Emitir:

Após a criação bem-sucedida da configuração ('homeserver.yaml'), a construção do synapse usando essa configuração geraria um erro de permissão com um stacktrace python indicando não ser capaz de ler o arquivo (dentro do contêiner), resultado service exit 1e não docker logs service.

Solução:

algumas dessas configurações podem ser definidas usando variáveis ​​​​env, consulte o leia-me do synapse Depois de checarmatriz/sinapsedocker repo, notei um histórico de atualizações recente e frequente. Meu sistema estragou tudo ou há um problema na configuração recente do contêiner. Então eu mesmo fiz algumas das coisas normalmente automatizadas.

  • criou as pastas que o synapse usa com o conf ('homeserver.yml') Se estiver usando bind mount (como na página do repo), o volume do docker estará em /var/lib/docker/volumes/<name of bind mount>/_data Aqui você deseja criar media_store, uploads, logs.

  • Procure os nomes das pastas criadas em ‘homeserver.yml’ e certifique-se de que os caminhos apontem para eles.

  • Atribuído o grupo padrão e seguindo as diretrizes do repositório de sinapse.

    # UID & GID default to 991
    chown 991:991 media_store/ uploads/ logs/
    
    
  • Aponte seu manipulador de configuração de log para a pasta logs, o arquivo de log não existe no momento de definir esta configuração. O arquivo do manipulador de log pode ser encontrado em .log.config

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

informação relacionada