Command "new-install" is not defined

Erro ao executar o comando, ele gera uma exceção afirmando não achar esse carinha lá no composer.json: docker-compose exec php composer new-install

Porém, ele tá lá.

Alguém saberia informar quais os ajustes necessários?

Você alterou alguma coisa no mapeamento dos volumes?
Pra ter certeza que o comando está sendo executado no lugar certo, você pode rodar um docker-compose exec php ls
O composer.json precisa aparecer na lista de arquivos

Você consegue postar aqui o erro que está dando?

Não realizei nenhuma alteração no docker-compose.yml e nem no Dockerfile dentro do docker/php ou mesmo docker/nginx

Ele tá dizendo que não posso fazer essa listagem: o user não tem acesso:

ls: cannot open directory ‘.’: Permission denied

Só pra vc se situar, meu user do host não está dentro do sudoers.
Eu executo o docker-compose com o root.

Eu executo o comando no diretório raiz do i-educar, que por sua vez contém o composer.json.

Você consegue acessar o bash do container?
docker exec -it ieducar-php bash

Se isso funcionar você pode rodar direto o composer new-install dentro do container

Identifiquei o problema, só não achei a solução.

Eu entro pelo bash no container tanto pelo php ou pelo nginx, porém, não consigo acessar o diretório:

root@b46644fb7117:/var/www/ieducar# ls
ls: cannot open directory '.': Permission denied

@ferox parece que o usuário do Docker não tem acesso ao volume da tua máquina local.

É problema de permissão, entre na raiz do projeto e veja qual usuário é dono dos arquivo ls -l.

Sim, sim!!

O usuário é o ferox mesmo.

Grupo e outros as permissões estão: 75

Me veio um insight aqui:

Se eu setar o user: “1001” no docker-compose.yml ele funciona???

Não funcionou. Será que eu tenho que setar o owner do ieducar clonado para www-data?

Outra questão é o SELinux, né?

@ferox tenta fazer uma ova instalação para verificar, pois parece apenas problema de permissão entre teu host e o Docker.

Você roda comandos do Docker com sudo na frente do comando? Verifique se o Docker tem permissões para acessar as pastas do teu sistema.

Eu rodei uma instância do Mautic e quando ele tentou listar ou copiar algo pro volume local deu permission denied. Então eu vi que tinha que setar o SELinux para o path do meu volume e aí funcionou. Vou tentar fazer com o i-educar.

Valeu @edersoares e @munizeverton , brigado aí pelo feedback.

Realmente esse permission tá matando a instalação.

Eu já rodei o docker-compose kill e logo em seguida o docker system prune -a pra matar tudo de uma vez só, e aí dei um build nas imagens de novo, acesso o container, rodo o pwd (sem erro), tento listar não rola: permission denied.

@edersoares Eu não rodo com sudo não, meu usuário do /home não está no suders. É tudo pelo root mesmo.

Sabe o que é mais bizarro, quando eu rodo o docker run -i -v /home/ferox/Projects/Docker/i-educar:/var/www/ieducar:z fedora /bin/bash consigo listar e criar documentos dentro do diretório i-educar pelo container.

Eu tentei alterar o docker-compose.yml e coloquei caminho completo, porém sem sucesso. Continua o erro permission denied.

Quando eu dou o build pelo docker-compose.yml e aí acesso o container pelo shell e dou um ls -la em /var/www o ieducar está com o user 1001, que é o UID do meu user ferox.

O que vcs acham, @munizeverton e @edersoares ???

@ferox chegou a excluir a pasta do projeto do i-Educar e fazer todo o processo novamente?

Realmente não sei o que dizer, talvez possa ser até um problema com a instalação do seu Docker.

Eu removi o Docker instalado pelo pacote da distro (Fedora 30) e instalei o docker-ce na versão test.

Vou remover o projeto e clonar ele novamente.

Obs.: Nessa versão do Docker eu já rodei vários containers com front-end em PHP: GPLI, Zabbix, e Kanboard.

@edersoares e @munizeverton O problema foi resolvido com a instalação do Docker CE. Agora, uma coisa que ficou estranha é que não foi possível instalar o JRE do OpenJDK com a imagem php:7.2-fpm. Fui até o Docker Hub e vi que lá havia um comentário sobre esse erro e que ele foi contornado mudando a versão do PHP para php:7.2.19-fpm. Não sei se outras pessoas podem enfrentar esse mesmo problema com o Java.

Deixo aqui o meu obrigado a vcs. Abraços!

Segue a imagem do i-Educar rodando pelo Docker CE no Fedora 30:

2 curtidas

Que ótimo @ferox!

Estaremos testando este problema do OpenJDK e vamos usar a tua dica :wink: