Ricostruzione fallita con git reset --hard origin tests-passed fallito con ritorno

Sto eseguendo Discourse in un contenitore Docker e quando provo a utilizzare launcher per ricreare app.yml ricevo questo errore;

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && git reset --hard origin tests-passed failed with return #<Process::Status: pid 257 exit 128>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"code", "cmd"=>["git remote set-branches --add origin master", "git remote set-branches origin $version", "git fetch --depth 1 origin $version", "git checkout $version", "git reset --hard origin $version", "git clean -f", "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", "find public/plugins/ -maxdepth 1 -xtype l -delete"]}
a84cc388fbc4b16307c2081e17b03c5eee578e1155fa1e057147601119d89a34
** 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.
==================== END REBUILD LOG ====================

Sembra un errore git legato allo stato attuale del repository ufficiale di Discourse su GitHub, ma non conosco abbastanza Docker o Git per esserne sicuro. Ho provato a eseguire ./discourse-doctor come suggerito, ma ciò ha portato alla ripetizione dello stesso problema… senza alcun aiuto.

Ok, sì… c’era qualcosa che non andava nel repository di Discourse perché non ho fatto nulla… ho semplicemente eseguito di nuovo il rebuild e ora funziona.

  1. Fa paura: lo stato corrotto di un repository può bloccare l’intera configurazione.

  2. Fa anche paura non avere un meccanismo di rollback per quando i repository remoti non collaborano… l’intero forum era in errore 502 fino a quando non si è ricostruito con successo. Forse c’è qualcosa in Docker, come una cronologia delle immagini o qualcosa di simile, a cui è possibile tornare indietro… non lo so… ma sembra che il supporto al rollback sarebbe una cosa piuttosto importante, se la differenza tra il sito che funziona e quello che non funziona dipende interamente dal fatto che i repository GitHub siano correttamente allineati. Certo, si potrebbe sostenere che spetti a me creare uno snapshot del server prima di tentare un rebuild… si potrebbe sostenere, suppongo.

Se la ricostruzione fallisce, di solito puoi

./launcher start app

Grazie Jay,

Il container stava avviandosi… Ho potuto usare docker top per vedere nginx in esecuzione all’interno del container, ed è quell’istanza che generava l’errore HTTP 502 “bad gateway”. L’ho confermato fermando il container e ottenendo poi connection refused, quindi il container era attivo… ma Discourse non riusciva a funzionare correttamente.

Vuoi dire quindi che, utilizzando lo strumento launcher, l’applicazione Discourse dovrebbe avviarsi all’interno del container? O sarebbe necessario eseguirlo dall’interno del container stesso?

Scusa la mia ignoranza in materia.

Sto dicendo che se la ricostruzione fallisce, puoi solitamente avviare il vecchio container con il comando start.

Ci vuole un po’ di tempo per avviare Rails, quindi l’errore 502 è previsto per un minuto o due.