Tenho uma instância do Discourse baseada em Docker, criada a partir de um modelo fornecido pela DigitalOcean. Quando ativei o backup automatizado pela primeira vez, um arquivo de dump foi gerado em /var/discourse/shared/standalone/backups/default/..., conforme esperado.
Decidi excluir o diretório backups e criei um link simbólico (symlink) backups apontando para um volume. Desde então, a tarefa de backup tem falhado (também entrei no contêiner e iniciei um backup manual, obtendo a mesma mensagem de erro).
Aqui está o rastreamento de pilha (stack trace):
File exists @ dir_s_mkdir - /var/www/discourse/public/backups
/usr/local/lib/ruby/2.7.0/fileutils.rb:250:in `mkdir'
/usr/local/lib/ruby/2.7.0/fileutils.rb:250:in `fu_mkdir'
/usr/local/lib/ruby/2.7.0/fileutils.rb:228:in `block (2 levels) in mkdir_p'
/usr/local/lib/ruby/2.7.0/fileutils.rb:226:in `reverse_each'
/usr/local/lib/ruby/2.7.0/fileutils.rb:226:in `block in mkdir_p'
/usr/local/lib/ruby/2.7.0/fileutils.rb:211:in `each'
/usr/local/lib/ruby/2.7.0/fileutils.rb:211:in `mkdir_p'
/var/www/discourse/lib/backup_restore/local_backup_store.rb:10:in `base_directory'
...
Edição
Entrei no contêiner e fiz algumas depurações. Acontece que há um link simbólico apontando /var/www/discourse/public/backups → /shared/backups no host, que também é um link simbólico no meu caso. Há um problema de permissão de arquivo impedindo que o processo Ruby escreva no diretório de backups no host.
Alguma dica?