Permissão negada ao criar arquivo storage/logs/laravel.log
[Finalizado Pelo Aluno]
Carlos, boa noite tudo bem ?
Cara, já não sei mais o que fazer....
Já reiniciei o curso, copiei os seus arquivos e tentei forçar um chmod 777 nas pastas do laravel.log pelo Dockerfile, mas mesmo assim o erro persiste.
o que pode ser ?
Mensagem de erro: The stream or file "/var/www/storage/logs/laravel.log" could not be opened in append mode: Failed to open stream: Permission denied
caso ajude, abaixo está o link do rep
github: https://github.com/especializati/laravel-microservice-01
Link do meu projeto correto
https://github.com/gseganzerla/micro01/
Olá, Guilherme!
Tudo bem?
Qual o seu sistema operacional? Linux?
Experimenta deletar e subir novamente os containers:
docker-compose down
docker-compose up -d
Importante amigo, se tiver no Linux, não rode os comandos com user root
Tudo otimo Carlos.
Então, já derrubei os containers e subi dnv diverssas vezes...
reiniciai a maquina e ainda continua
Meu SO e o ubuntu 20.04.03
No arquivo docker-compose deixa o nome do user com o mesmo do seu usuário no Ubuntu
E suba novamente os container, recriando dessa vez:
docker-compose up -d --build
Experimenta acessar o container do root:
docker-compose exec --user=root micro_01 bash
Muda as permissões:
chmod -R 777 storage/
Carlos, bom dia
Consegui resolver com a sua dica de acessar com o usuario root. Ainda estou me habituando ao docker finalizei seu curso esses dias então ainda não consegui colocar muito em pratica. rsrs
No entanto o que eu poderia fazer pra que em cada projeto eu não tenha que acessar como root e aplicar o 777 na pasta de storage.
Eu precisaria mecher no Dockfile
Carlos, vou aproveitar esse ticket q ja esta aberto ok ?
Agora estou assistindo a aula onde vc faz a criação do Model Category
ao acessar o container e execultar o php artisan make:model Category -m
o container me retorna o erro de permissão negada
as permissões das pastas estão da seguinte maneira:
-rw-rw-r-- 1 1001 1001 913 Dec 22 10:07 User.php (Usei a model de user no exemplo)
o que no caso está realmente certo, afinal meu usuario se chama guilherme e este arquivo pertence ao usuario e grupo 1001 respectivamente.
Nesse caso não era para assumir o usuario e o grupo que eu coloquei no docker-compose ?
que no caso e guilherme (Mesmo nome de usuario da minha maquina host)
Estou conseguindo seguir com a aula pois tenho o php instalado na minha maquina host e consegui criar os arquivos
Mas gostaria de entender um pouco melhor o por que estou tendo tantos problemas com permissões
Abaixo vou deixar algumas informações que julgo importantes:
OS: Ubuntu 20.04
User: guilherme
Docke version: 20.10.12, build e91ed57
Docker Compose Version: v2.2.3
Que bom que deu certo amigo.
---
O comando você rodou dentro do seu container com o usuário root?
docker-compose exec --user=root micro_01 bash
php artisan make:model Category -m
Todos os comandos devem ser rodados dentro do seu container, porque assim evita problemas de permissões e especialmente, problemas com conexão ao banco de dados (porque o container tem acesso ao outro container de db).
----
Vou subir um novo setup Docker, já com PHP 8 e etc, e estes problemas de permissões também serão resolvidos (independente do S.O.)
Carlos, então...
como você não utiliza o root e sim o seu usuario normal durante as aulas eu fui seguindo. Só não entendi muito bem o por que dos problemas de permissão.
Bom estou conseguindo seguir com as aulas de qualquer forma
fico aguardando o novo setup do docker para ver se os problemas serão corrigidos :)
Validei este mesmo setup em outros S.O.s, mac e Linux, em ambos foram um sucesso. Até no Windows, com e sem WSL2 funcionou.
Em alguns casos em particular no Linux alguns alunos tiveram problemas, em alguns casos conseguiram resolver removendo o UID e o user (deixando subir os container com root mesmo)
Fica de olho em: github.com/especializati/setup-docker-laravel/
TMJ amigo!
como ficaria isso na produção é seguro deixar o usario root ?
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!