Erro no Git ao reconstruir o app - não foi possível encontrar a referência remota refs/heads/tests-passed

Olá pessoal,

Estou recebendo este erro quando reconstruo o aplicativo

> Pups::ExecError: cd /var/www/discourse && sudo -H -E -u discourse bash -c '\
>   set -o errexit
>   if [ $(git rev-parse --is-shallow-repository) == "true" ]; then
>       git remote set-branches --add origin main
>       git remote set-branches origin tests-passed
>       git fetch --depth 1 origin tests-passed
>   else
>       git fetch --tags --prune-tags --prune --force origin
>   fi
> ' failed with return #<Process::Status: pid 145 exit 128>

Quando executo isto:

> git fetch --tags --prune-tags --prune --force origin

Recebo o erro:

> fatal: couldn't find remote ref refs/heads/tests-passed

Estou fazendo algo errado?

Obrigado e um abraço!

P.S. Esqueci de mencionar. O primeiro checkout funcionou, apenas a tarefa de reconstruir o aplicativo falha com isso. Então não é um problema de Git da minha parte, eu acho (espero :-))

Acabei de notar mais problemas nos logs acima :frowning:

Atualizações bem-sucedidas. Reconstruindo em 5 segundos.
Construindo app
Arquitetura x86_64 detectada.
Garantindo que o launcher esteja atualizado
fatal: não foi possível encontrar a referência remota refs/heads/tests-passed
fatal: branch upstream ‘refs/heads/main’ não armazenada como branch de rastreamento remoto
fatal: branch upstream ‘refs/heads/main’ não armazenada como branch de rastreamento remoto
./launcher: linha 794: [: 69d7558c98a3775f62b720a8393e76f2b42bd916: operador unário esperado
./launcher: linha 797: [: 69d7558c98a3775f62b720a8393e76f2b42bd916: operador unário esperado

Ao executar um contêiner com docker run -it --entrypoint /bin/bash …
e tentar usar o git, recebo isto

git clone https://github.com/discourse/discourse.git/
Clonando em 'discourse'...
fatal: impossível acessar 'https://github.com/discourse/discourse.git/': falha na verificação do certificado do servidor. CAfile: none CRLfile: none

Você pode, por favor, postar a saída completa do log e usar um bloco de código pré-formatado? Isso ajudaria.

Suspeito que você esteja fazendo isso em uma rede corporativa que usa um proxy de inspeção MITM para tráfego web de saída?

Se sim, você precisará configurar seu servidor (e a imagem do Docker) para confiar na sua Raiz de CA Corporativa.

É exatamente esse o caso.
Existe alguma funcionalidade padrão disponível no discourse docker para realizar isso (quero dizer a imagem docker, não o servidor), ou tenho que fazer isso manualmente?

Muito obrigado desde já e Saudações,

WS

Atualização: Não, eu estava errado. Na verdade, estou fazendo isso em um contexto de empresa, mas a instância está em uma instância ec2 (Standard Amazon Linux 2 AMI), que pode sair por um proxy …
E, como eu disse, o primeiro checkout foi bem-sucedido, apenas a reconstrução falha.

Verifiquei novamente, funciona no host, mas não no contêiner :frowning:

Olá @Lilly , desculpe a demora, mas aqui está o log (a parte relevante, eu acho)

I, [2024-11-20T05:57:07.498456 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git reset --hard
Updating files: 100% (34680/34680), done.
I, [2024-11-20T05:57:11.943323 #1]  INFO -- : HEAD is now at 274e18622 FIX: Video uploads sometimes hang indefinitely (#28523)

I, [2024-11-20T05:57:11.943867 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git clean -f
I, [2024-11-20T05:57:12.079705 #1]  INFO -- : 
I, [2024-11-20T05:57:12.080107 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
  set -o errexit
  if [ $(git rev-parse --is-shallow-repository) == "true" ]; then
      git remote set-branches --add origin main
      git remote set-branches origin tests-passed
      git fetch --depth 1 origin tests-passed
  else
      git fetch --tags --prune-tags --prune --force origin
  fi
'
fatal: unable to access 'https://github.com/discourse/discourse.git/': server certificate verification failed. CAfile: none CRLfile: none
I, [2024-11-20T05:57:12.186392 #1]  INFO -- : 
I, [2024-11-20T05:57:12.187130 #1]  INFO -- : Terminating async processes
I, [2024-11-20T05:57:12.187180 #1]  INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 39
2024-11-20 05:57:12.187 UTC [39] LOG:  received fast shutdown request
I, [2024-11-20T05:57:12.187839 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 107
107:signal-handler (1732082232) Received SIGTERM scheduling shutdown...
2024-11-20 05:57:12.189 UTC [39] LOG:  aborting any active transactions
107:M 20 Nov 2024 05:57:12.193 # User requested shutdown...
107:M 20 Nov 2024 05:57:12.193 * Saving the final RDB snapshot before exiting.
2024-11-20 05:57:12.194 UTC [39] LOG:  background worker "logical replication launcher" (PID 54) exited with exit code 1
2024-11-20 05:57:12.194 UTC [49] LOG:  shutting down
107:M 20 Nov 2024 05:57:12.197 * DB saved on disk
107:M 20 Nov 2024 05:57:12.197 # Redis is now ready to exit, bye bye...
2024-11-20 05:57:12.227 UTC [39] LOG:  database system is shut down

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && sudo -H -E -u discourse bash -c '
  set -o errexit
  if [ $(git rev-parse --is-shallow-repository) == "true" ]; then
      git remote set-branches --add origin main
      git remote set-branches origin tests-passed
      git fetch --depth 1 origin tests-passed
  else
      git fetch --tags --prune-tags --prune --force origin
  fi
' failed with return #<Process::Status: pid 144 exit 128>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"code", "cmd"=>["sudo -H -E -u discourse git reset --hard", "sudo -H -E -u discourse git clean -f", "sudo -H -E -u discourse bash -c '\n  set -o errexit\n  if [ $(git rev-parse --is-shallow-repository) == \"true\" ]; then\n      git remote set-branches --add origin main\n      git remote set-branches origin $version\n      git fetch --depth 1 origin $version\n  else\n      git fetch --tags --prune-tags --prune --force origin\n  fi\n'", "sudo -H -E -u discourse bash -c '\n  set -o errexit\n  if [[ $(git symbolic-ref --short HEAD) == $version ]] ; then\n      git pull\n  else\n      git -c advice.detachedHead=false checkout $version\n  fi\n'", "sudo -H -E -u discourse git config user.discourse-version $version", "mkdir -p tmp", "chown discourse:www-data tmp", "mkdir -p tmp/pids", "mkdir -p tmp/sockets", "touch tmp/.gitkeep", "mkdir -p                    /shared/log/rails", "bash -c \"touch -a           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log\"", "bash -c \"ln    -s           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log $home/log\"", "bash -c \"mkdir -p           /shared/{uploads,backups}\"", "bash -c \"ln    -s           /shared/{uploads,backups} $home/public\"", "bash -c \"mkdir -p           /shared/tmp/{backups,restores}\"", "bash -c \"ln    -s           /shared/tmp/{backups,restores} $home/tmp\"", "chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp\"", "[ ! -d public/plugins ] || find public/plugins/ -maxdepth 1 -xtype l -delete]"}
bootstrap failed with exit code 128
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.

Desculpem, pessoal, era um problema de proxy. Tive que configurar os proxies em ~/.docker/config.json para que fossem injetados no contêiner, e funcionou …

Meu Deus, quanta vida desperdicei com problemas de proxy?? :stuck_out_tongue:

3 curtidas

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.