Error de Git al reconstruir la aplicación - no se pudo encontrar la referencia remota refs/heads/tests-passed

Hola chicos,

Estoy recibiendo este error cuando reconstruyo la aplicación

> 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>

Cuando ejecuto esto:

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

Recibo el error:

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

¿Estoy haciendo algo mal?

¡Gracias y saludos!

P.D. Olvidé mencionar. El primer checkout funcionó, solo la tarea de reconstruir la aplicación falla con eso. Así que no es un problema de Git de mi parte, creo (¡espero! :-))

Acabo de notar más problemas en los registros :frowning:

Actualizaciones correctas. Recompilando en 5 segundos.
Compilando aplicación
Se detectó la arquitectura x86_64.
Asegurando que el lanzador esté actualizado
fatal: no se pudo encontrar la referencia remota refs/heads/tests-passed
fatal: la rama principal ‘refs/heads/main’ no se almacena como una rama de seguimiento remoto
fatal: la rama principal ‘refs/heads/main’ no se almacena como una rama de seguimiento remoto
./launcher: línea 794: [: 69d7558c98a3775f62b720a8393e76f2b42bd916: se esperaba un operador unario
./launcher: línea 797: [: 69d7558c98a3775f62b720a8393e76f2b42bd916: se esperaba un operador unario

Cuando ejecuto un contenedor con docker run -it --entrypoint /bin/bash …
y trato de usar git, obtengo esto

git clone https://github.com/discourse/discourse.git/
Clonando en 'discourse'...
fatal: no se puede acceder a 'https://github.com/discourse/discourse.git/': error de verificación del certificado del servidor. CAfile: none CRLfile: none

¿Podrías publicar la salida completa del registro y usar un bloque de código de texto preformateado? Eso ayudaría.

Sospecho que estás haciendo esto en una red corporativa que utiliza un proxy de inspección MITM para el tráfico web saliente.

Si es así, necesitarás configurar tu servidor (y la imagen de Docker) para que confíe en tu CA raíz empresarial.

Ese es exactamente el caso.
¿Hay alguna funcionalidad estándar disponible en discourse docker para lograr eso (me refiero a la imagen de docker, no al servidor), o tengo que hacerlo manualmente?

Muchas gracias de antemano y saludos,

WS

Actualización: No, me equivoqué. En realidad, estoy haciendo esto en un contexto de empresa, pero la instancia está en una instancia EC2 (Amazon Linux 2 AMI estándar), que puede salir a través de un proxy …
Y, como dije, el primer checkout fue exitoso, solo la reconstrucción falla.

Lo comprobé de nuevo, funciona en el host, pero no en el contenedor :frowning:

Hola @Lilly , disculpa la demora, pero aquí tienes el registro (la parte relevante, supongo)

I, [2024-11-20T05:57:07.498456 #1]  INFO -- : > cd /var/www/discourse &amp;&amp; sudo -H -E -u discourse git reset --hard
Actualizando archivos: 100% (34680/34680), hecho.
I, [2024-11-20T05:57:11.943323 #1]  INFO -- : HEAD está ahora en 274e18622 FIX: Las cargas de video a veces se cuelgan indefinidamente (#28523)

I, [2024-11-20T05:57:11.943867 #1]  INFO -- : > cd /var/www/discourse &amp;&amp; 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 &amp;&amp; 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 -- : Terminando procesos asíncronos
I, [2024-11-20T05:57:12.187180 #1]  INFO -- : Enviando INT a 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:  recibida solicitud de apagado rápido
I, [2024-11-20T05:57:12.187839 #1]  INFO -- : Enviando TERM a 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:  abortando todas las transacciones activas
107:M 20 Nov 2024 05:57:12.193 # User requested shutdown...
107:M 20 Nov 2024 05:57:12.193 * Guardando la instantánea final de RDB antes de salir.
2024-11-20 05:57:12.194 UTC [39] LOG:  worker en segundo plano "logical replication launcher" (PID 54) salió con código de salida 1
2024-11-20 05:57:12.194 UTC [49] LOG:  apagando
107:M 20 Nov 2024 05:57:12.197 * DB guardado en disco
107:M 20 Nov 2024 05:57:12.197 # Redis está listo para salir, adiós...
2024-11-20 05:57:12.227 UTC [39] LOG:  el sistema de bases de datos está apagado

FALLIDO
--------------------
Pups::ExecError: cd /var/www/discourse &amp;&amp; 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
' falló con el retorno #&lt;Process::Status: pid 144 exit 128&gt;
Ubicación del fallo: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec falló con los parámetros {"cd"=&gt;"$home", "hook"=&gt;"code", "cmd"=&gt;["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"]}
falló el bootstrap con el código de salida 128
** FALLÓ EL BOOTSTRAP ** por favor desplázate hacia arriba y busca mensajes de error anteriores, puede haber más de uno.
./discourse-doctor puede ayudar a diagnosticar el problema.

Lo siento chicos, era un problema de proxy. Tuve que configurar los proxies en ~/.docker/config.json para que se inyectaran en el contenedor, y funcionó…

Dios, ¿cuánto tiempo he perdido con problemas de proxy? :stuck_out_tongue:

3 Me gusta

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