L’istanza di Discourse si trova dietro il GFW, quindi utilizziamo un proxy SOCKS5 per Git. Abbiamo installato alcuni plugin, quindi la ricompilazione o l’avvio dell’app clona ripetutamente tutti questi repository. Sfortunatamente, la clonazione va regolarmente in timeout, quindi l’intero processo ricomincia da capo, anche se la base di codice più recente è già stata clonata. Ho fatto più di 40 tentativi e ho perso circa cinque ore. L’ultima barriera è un sottoprocesso yarn all’interno del container, che di solito va in timeout, con conseguente fallimento dell’aggiornamento.
C’è un modo per strutturare app.yml in modo da non invocare almeno l’intero processo di clonazione dei plugin? La clonazione nel codice docker-manager e nella base di codice di Discourse ha una probabilità del 50% di successo, con la clonazione successiva a circa 1/3 di successo. Non so cosa causi il fallimento del sottoprocesso yarn, ma al momento sembra non essere possibile riportare in vita Discourse con i metodi dati.
Naturalmente sono stato abbastanza stupido da invocare launcher destroy app poiché volevo avviarlo manualmente, quindi non posso nemmeno eseguire launcher enter app per provare a eseguire manualmente il comando yarn. Qualcuno ha qualche idea? Grazie per il vostro contributo.