2
respostas

Erro para subir o projeto

Ao tentar subir o projeto diversas vezes, o mesmo esta dando o erro seguido no print abaixo : Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Chequei os arquivos sh e estão com o then corretamente, não consegui localizar qual o arquivo que esta contendo este problema informado no retorno do prompt.

2 respostas

Oii, Melissa, tudo bem com você?

Pelo print que você compartilhou, há dois problemas principais ao tentar subir o projeto:

  • Erro de sintaxe nos arquivos .sh: o erro Syntax error: end of file unexpected (expecting 'then') sugere que há um problema de sintaxe nos arquivos de script shell (.sh). Isso aconteece quando há um bloco if sem o then correspondente ou algum outro erro de formatação.

Um exemplo de como deve estar um bloco if corretamente formatado:

if [ condição ]; then
# comandos
  • Erro de porta já em uso: o erro Ports are not available: exposing port TCP 0.0.0.0:80 -> 0.0.0.0:80: bind: An attempt was made to access a socket in a way forbidden by its access permissions indica que a porta 80 já está sendo utilizada por outro processo no seu sistema.

Para resolver isso, você pode identificar e interromper o processo que está utilizando a porta 80. No Windows, você pode usar o comando netstat -ano | findstr :80 para encontrar o PID do processo e, em seguida, taskkill /PID <PID> /F para finalizar o processo.

Você também pode alterar a porta que o Docker está tentando expor. Isso pode ser feito modificando o arquivo docker-compose.yml para usar uma porta diferente, por exemplo:

ports:
- "8080:80"

Se outra dúvida surgir, estamos disponíveis.

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Eu estava passando pelo mesmo problema, e como já tive problemas em rodar alguns comandos de alguns cursos daqui por está programando no Windows, segui nessa linha de pensamento e acabei descobrindo uma coisa interessante.

O Docker espera que os scripts de entrada estejam no formato Unix, o que significa que eles devem ter quebras de linha LF (Line Feed), e não CRLF (Carriage Return Line Feed), que é o padrão no Windows.

Lá no docker-compose.yml mostra que os arquivos .sh que estão na raiz do projeto estão sendo copiados para o arquivo entrypoint.sh dentro das imagens do docker.

Basicamente, para resolver o problema, você vai ter que converter os arquivos .sh que estão na raiz do projeto para o formato Unix.

Eu usei o Notepad++ para isso:

  1. Abre os arquivos .sh da raiz do projeto
  2. No Notepad++ vai em Editar => Conversão final de linha => Converter para formato UNIX
  3. Salva

Basicamente é isso, após fazer essa alteração o erro de "end of line unexpected" acaba.

Espero ter ajudado!


Obs: Apesar de te resolvido "parcialmente" o problema, ao tentar rodar o comando do docker compose, continuou quebrando os projetos em outros pontos, por exemplo, ao tentar rodar o ng serve do angular, retornava um erro informando que o comando NG não havia sido encontrado. Tentei redirecionar a chamada do ng para pegar diretamente da pasta @angular no node_modules, mas ai deu erro de permissão negada.

Enfim, vira uma bola de neve.

Para resolver o problema de vez, eu baixei o projeto na instalação Linux que tenho aqui no Windows, via WLS.

Recomendo, evita essas dores de cabeça!

Link para instalação