filipedeschamps / tabnews.com.br

Conteúdos para quem trabalha com Programação e Tecnologia.
https://tabnews.com.br
GNU General Public License v3.0
5.27k stars 390 forks source link

Docker-compose: comando não encontrado #666

Closed andersonFaro9 closed 1 year ago

andersonFaro9 commented 2 years ago

Boa tarde amigos, tudo bem? Após tentar rodar o projeto com o comando conforme descrito: "npm run dev" tenho o seguinte erro: "linha 1: docker-compose: comando não encontrado". Como posso resolver, tentei mas não consegui.

filipedeschamps commented 2 years ago

@andersonFaro9 tudo bem? Você precisa ter essas dependências globais para conseguir rodar o projeto: https://github.com/filipedeschamps/tabnews.com.br#depend%C3%AAncias-globais

O que sugiro fazer é rodar o repositório através do Codespaces aqui do GitHub ou do Gitpod que já possuem todas as dependências instaladas.

andersonFaro9 commented 2 years ago

Opa, Filipe, blza? Segui conforme está no Readme.md mas o erro persisti.

filipedeschamps commented 2 years ago

@andersonFaro9 show, vamos descobrir o que está acontecendo 👍

Quando você digita no terminal docker --version o que aparece? E quando você digita docker-compose --version o que aparece? No meu aparece o seguinte:

❯ docker --version
Docker version 20.10.17, build 100c701

❯ docker-compose --version
Docker Compose version v2.6.1
coffeeispower commented 2 years ago

O tabnews só roda no Linux e Mac. E preciso do docker e docker compose para rodar os outros micro serviços como o banco de dados.

filipedeschamps commented 2 years ago

@coffee-is-power até onde testamos, o TabNews funciona 100% no Windows após esse detalhe aqui: https://github.com/filipedeschamps/tabnews.com.br/issues/610

coffeeispower commented 2 years ago

Mas e sempre melhor rodar dentro do wsl já que a maioria das ferramentas normalmente são feitas pra Linux primeiro. Na minha opiniao

coffeeispower commented 2 years ago

Agora que eu percebi que essa issue e a número 666 :pepeCruz: ScrawnyInsistentAmoeba-size_restricted.gif

rodrigoKulb commented 2 years ago

@coffee-is-power realmente o Docker roda somente dentro do WSL no fundo dentro de um ambiente Linux.

Esse cara ajuda bem como instalar no Windows https://www.youtube.com/watch?v=05YN8F8ajBc

Agora que eu percebi que essa issue e a número 666 :pepeCruz:

Issue #666 hahaha 👿️👻️👻️🤣️

andersonFaro9 commented 2 years ago

@filipedeschamps Quando digito: Docker version, isso é o que retorna: Docker version 20.10.17, build 100c701 e no caso do compose, me retorna : "docker-compose version 1.29.2, build unknown"

filipedeschamps commented 2 years ago

@andersonFaro9 interessante, a versão do Docker é a mesma que tenho aqui e a versão do docker-compose está acima da que está no README: Docker Compose v1.24.1, deveria funcionar.

Então sobre o erro "linha 1: docker-compose: comando não encontrado" não tem a ver com o Docker em sí, mas em como ele está conseguindo encontrar ele no sistema eu imagino.

Qual seu sistema operacional?

andersonFaro9 commented 2 years ago

é o fedora

filipedeschamps commented 2 years ago

Hmmm, vai ser difícil eu conseguir debugar por aqui. Mas de qualquer forma, o que acontece se você digitar o seguinte na raiz do repositório do TabNews:

docker compose -f infra/docker-compose.development.yml up -d
andersonFaro9 commented 2 years ago

tentei isso e me retornou:

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.project%3Dinfra%22%3Atrue%7D%7D&limit=0": dial unix /var/run/docker.sock: connect: permission denied
andersonFaro9 commented 2 years ago

Daí, eu fiz login com sudo e continuo sem conseguir

filipedeschamps commented 2 years ago

@andersonFaro9 eu infelizmente não saberei configurar o Docker no seu ambiente.

Sugiro novamente usar um ambiente online, pois vai estar tudo pronto. Sugiro utilizar o Gitpod 🤝

andersonFaro9 commented 2 years ago

Consegui, cara... com o gitpod

andersonFaro9 commented 2 years ago

@filipedeschamps no meu caso em que nunca participei diretamente um projeto no github em que participo e posso implementar uma "feature" qual primeiro passo, busco numa issue, tento implementar e mando um push?

coffeeispower commented 2 years ago

Cria uma issue, depois cria uma branch faz as suas modificações e depois crie um pull request , dar push na master não e permitido (obviamente, pq é a branch sagrada)

coffeeispower commented 2 years ago

Tem que instalar o docker-compose, e um programa separado https://docs.docker.com/compose/install/

andersonFaro9 commented 2 years ago

Obrigado @coffee-is-power

andersonFaro9 commented 2 years ago

Quanto ao compose, instalei sim mas não foi como esperado. Estou acessando aqui com o gitpod como o Filipe sugeriu.

rodrigoKulb commented 2 years ago

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.project%3Dinfra%22%3Atrue%7D%7D&limit=0": dial unix /var/run/docker.sock: connect: permission denied

Grande @andersonFaro9 tive o mesmo problema utilizando o Mate, um problema de permissão para acesso ao docker

Da uma olhada nesse artigo! Veja se consegue aplicar no Fedora

https://linuxhandbook.com/docker-permission-denied/#:~:text=deal%20with%20it.-,Fix%201%3A%20Run%20all%20the%20docker%20commands%20with%20sudo,the%20Docker%20daemon%20socket'%20anymore.

kaique-soares commented 2 years ago

@filipedeschamps no meu caso em que nunca participei diretamente um projeto no github em que participo e posso implementar uma "feature" qual primeiro passo, busco numa issue, tento implementar e mando um push?

@andersonFaro9 seja MUITO bem vindo ao repositório do TabNews :handshake:

Estamos neste momento trabalhando nas tarefas da Milestone 5 que tem como objetivo principal lançar publicamente o TabNews e você pode encontrar mais detalhes na issue #493 :+1:

E @andersonFaro9, eu também nunca havia participado de um projeto no Github com outras pessoas e a experiência aqui tem sido sensacional, acredito que não teria lugar melhor para eu ter dado o primeiro passo :+1:

E eu comecei aqui faz pouco tempo, se não me engano eu cheguei entre o meio (quase fim) da Milestone 4 e o inicio da atual. E algo que me ajudou muito foi, antes de tocar em código, entender o que tava acontecendo aqui e fiz isso:

  1. Começando pelo diário de desenvolvimento
  2. Conhecendo a estrutura do projeto, estudando ela, cavucando mesmo!
  3. Olhando issues/PRs anteriores, que estão muito bem organizados nas milestones passadas e tem MUITO conhecimento registrado :heart_eyes:
  4. E nesse meio tempo surgiram issues que eu vi que davam para eu resolver, outras que dei uma patinada e a turma me ajudou, e no fim deu tudo certo!

Não necessariamente tu precisa seguir por esse caminho, mas me ajudou muito e acredito que seja uma boa opção :+1:

No mais, caso precise de ajuda estamos aqui, beleza!

CarlosZiegler commented 2 years ago

Tem um Pr meu que deu início a documentação da API, mas tem que ser lapidado e inserir os endpoints, talvez um bom início pra vc :) @andersonFaro9

andersonFaro9 commented 2 years ago

Obrigado amigos pelo retorno, estou de fato alegre em participar desse projeto. Lerei em breve cada comentário novamente.

andersonFaro9 commented 2 years ago

Ontem numa entrevista, citei a Tabnews e falei um pouco desse projeto. A pessoa perguntou se sabia teste unitários e disse que não, mas tenho uma dúvida: o que seria de fato testes unitiários? conheço pouco de teoria do tdd, imagino que não é o mesmo que testes unitários, alguém pode esclarecer?

coffeeispower commented 2 years ago

Aqui não fazenos testes unitários, apenas testes de integração da API, que consiste em fazer um request para API e verificar o que retorna dado tais inputs.

coffeeispower commented 2 years ago

Tdd e um modo de desenvolver cria novas features e encontrar bugs usando testes. Testes são mini programas que verificam a integridade e funcionalidade do código. Testes também podem ser considerados como especificações, ou seja, eles são como requisitos expressos em código,e você precisa cumprir esses requisitos para ele passar.

herculesgabriel commented 2 years ago

@andersonFaro9, eu tive um problema parecido num outro projeto há um tempo atrás e talvez possa ser o seu caso. Antes de tudo, roda no seu terminal o comando which docker-compose e fala pra gente qual é a saída. No meu caso está assim:

docker-compose: aliased to docker compose

Breve explicação: nas novas instalações do compose "docker-compose" não é mais um binário do sistema, mas sim um apelido para o binário correto. Por isso pode ser que o script do package.json não encontre esse binário e retorne erro (mesmo que seja possível utilizar normalmente fora do projeto).

Ryannnkl commented 1 year ago

Opa!

como o @andersonFaro9 explicou, docker-compose é um alias para o comando docker compose. Segundo o proprio site do docker o comando docker-compose vai cair em desuso para a nova versão do compose v2 em Junho:

image

Solução

mudar os scripts no package.json para utilizar a nova sintaxe do docker compose, os parametros continuam os mesmos só o docker-compose que vai mudar para docker compose

aprendendofelipe commented 1 year ago

Considerando que o @andersonFaro9 disse que conseguiu, e que o PR #1315 adicionou a compatibilidade com os comandos docker-compose e docker compose ao mesmo tempo, mesmo para quem não usa o Docker Desktop, estou fechando essa issue. 👍