[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Eric
Criador Eric 23/03/2022

Olá Carlos, 

Depois de rodar o sudo docker-compose up -d na vps, instalou normalmente, mas quando entre dentro do container que tem a aplicação Laravel, e tento rodar o composer install, recebo um erro:

 [ErrorException]

 file_put_contents(./composer.lock): Failed to open stream: Permission denied

 

Tentei usar com sudo na frente, tive um alerta que não reconhecia o comando:

bash sudo command not found

 

Então adicionei no Dockerfile o sudo

    unzip \
    sudo

Matei os containers e rodei novamente o docker-compose up -d build, e continuo com o mesmo erro.

Digito su para tentar trocar para o root, e me pede senha, como eu posso definir uma senha para esse usuário criado que vai manipular esses containers?

 

Fiz todos os passos em minha máquina em um wls e rodou tudo normal, consegui entrar no container, e rodar as migrations.

Em produção está aparecendo isso. Segui os passos anteriores, e estou usando uma droplet com aquela imagem padrão, já com o docker.

Estou pesquisando aqui, mas sem solução, mesmo que eu tente rodar um apt update dentro do container, não funciona.

Manager Carlos Ferreira 23/03/2022

Olá, Eric!
Tudo bem?

Você está rodando o Docker com usuário sudo?

Tem aí o setup que está usando no projeto?

Está rodando os comandos dentro do container docker?

Carlos Ferreira
Criador Eric 23/03/2022

Olá Carlos, 

Sim, no meu Dockerfile está configurado como no curso de Docker, e achei que o usuário já viria com as permissões, porque foi adicionado nas linhas:

# Create system user to run Composer and Artisan Commands
RUN useradd -G www-data,root -u $uid -d /home/$user $user
RUN mkdir -p /home/$user/.composer && \
    chown -R $user:$user /home/$user

Como mencionei antes, na minha máquina com wls não ocorreu isso, já na droplet sim, e como foi definido um usuário, quando executo o:

sudo docker-compose exec app bash

Eu já entro no container com esse usuário, mas ele não tem permissões, e não conseguia trocar para o root, porque não tinha senha para o root, nem para esse user.

Mas buscando aqui, consegui resolver, adicionando senha para os usuários:

RUN echo 'meuusuario:SENHA' | chpasswd
RUN echo 'root:SENHA' | chpasswd

Fazendo o processo novamente, entrei no container e troquei para o root, assim consegui rodar os comandos composer, artisan  e etc.

Não sei porque isso ocorreu, mas consegui concluir o deploy.

Valeu, abs!

Eric
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!