1
resposta

[Bug] Erro no terceiro container

2024-05-09 14:21:52 /app/wait-for-it.sh: line 3: $'\r': command not found 2024-05-09 14:21:53 /app/wait-for-it.sh: line 5: $'\r': command not found 2024-05-09 14:21:53 /app/wait-for-it.sh: line 6: syntax error near unexpected token $'}\r'' '024-05-09 14:21:53 /app/wait-for-it.sh: line 6: echoerr() { if [[ $WAITFORIT_QUIET -ne 1 ]]; then echo "$@" 1>&2; fi } 2024-05-09 14:32:51 /app/wait-for-it.sh: line 3: $'\r': command not found 2024-05-09 14:32:51 /app/wait-for-it.sh: line 5: $'\r': command not found 2024-05-09 14:32:51 /app/wait-for-it.sh: line 6: syntax error near unexpected token $'}\r'' '024-05-09 14:32:51 /app/wait-for-it.sh: line 6: echoerr() { if [[ $WAITFORIT_QUIET -ne 1 ]]; then echo "$@" 1>&2; fi } 2024-05-09 14:35:45 /app/wait-for-it.sh: line 3: $'\r': command not found 2024-05-09 14:35:45 /app/wait-for-it.sh: line 5: $'\r': command not found 2024-05-09 14:35:45 /app/wait-for-it.sh: line 6: syntax error near unexpected token $'}\r'' '024-05-09 14:35:45 /app/wait-for-it.sh: line 6: echoerr() { if [[ $WAITFORIT_QUIET -ne 1 ]]; then echo "$@" 1>&2; fi }

1 resposta

Olá, Dalton.

Tudo bem?

Parece que você está enfrentando um problema clássico relacionado a diferenças de terminação de linha entre sistemas operacionais Unix/Linux e Windows. Os erros que você mencionou geralmente ocorrem porque o script shell foi salvo com terminações de linha no estilo Windows (CRLF) em vez do estilo Linux (LF), que é esperado em ambientes Unix/Linux.

Para resolver esse problema, você pode converter as terminações de linha do seu script para o formato Unix/Linux. Você pode fazer isso usando um editor de texto que permita especificar a terminação de linha, como o Notepad++ ou o Visual Studio Code, ou através de uma ferramenta de linha de comando. Aqui estão duas maneiras de fazer isso:

  1. Usando o Visual Studio Code:

    • Abra o arquivo no Visual Studio Code.
    • Na parte inferior direita da janela, clique onde está escrito "CRLF".
    • Selecione "LF" na lista que aparece.
    • Salve o arquivo.
  2. Usando a linha de comando (se você estiver em um sistema Unix/Linux):

    • Você pode usar o comando dos2unix, que é uma ferramenta para converter arquivos de texto com terminações de linha do estilo Windows para o estilo Unix. Se não estiver instalado, você pode instalá-lo via gerenciador de pacotes (por exemplo, sudo apt-get install dos2unix no Ubuntu).
    • Execute o comando: dos2unix /caminho/para/seu/script.sh
    • Isso converterá as terminações de linha para LF.

Após converter as terminações de linha do seu script para LF, tente executar o script novamente no seu container. Isso deve resolver os erros de sintaxe que você está enfrentando.

Espero que essa sugestão resolva o problema que você está enfrentando, porém, qualquer dúvida manda aqui. Bons estudos.