Jackson Martins

Azure WebApp Read-only file system – Erro escrever no diretorio wwwroot usando Azure Devops

Fala pessoal, tudo bem com vocês?

Hoje vou mostrar como resolvi um problema que enfrentei quando estava trabalhando em um projeto com a equipe de desenvolvimento.

O time de desenvolvimento me procurou informando que o PHP não estava conseguindo escrever no diretório em que estava publicado, eles fazem o auto deploy pelo Azure Devops e a aplicação precisaria criar um pequeno arquivo de cache.

Há várias soluções para esse cenário, uma delas (e a mais recomendada) seria não escrever nada no diretório wwwroot onde estava aplicação e mandar jogar em um diretório temporario

Nem por ssh utilizando direto era possível criar ou modificar nada nesse diretório. Quando o pessoal de desenvolvimento acessava por FTP, eles viam um diretório diferente também.

E qual a solução?

Antes precisamos entender a arquitetura e o que acontece é Azure faz a cópia inteira zipada da aplicação em um diretório chamado SitePackages (D:\home\data\SitePackages):

e extrai o conteúdo no diretório padrão wwwroot com permissão de leitura.

Isso acontece porque a configuração WEBSITE_RUN_FROM_PACKAGE está com valor 1 ou seja, a função Runs From Package torna seu diretório wwwroot somente leitura, para corrigir isso mude o valor para 0:

Após reiniciar a aplicação ou fazer o redeploy a API de implantação vai enviar o direto para o diretório wwwroot e você conseguirá escrever no diretório tanto via FTP, SSH ou com a própria aplicação

Nos vemos nos próximos posts
Até mais 😉

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *