Installazione di Discourse su un server senza accesso a DockerHub

@sam Sam, la mia azienda sta ora bloccando Docker Hub. Sto eseguendo Docker per Discourse in più ambienti e ho bisogno di aggiornare. Ovviamente fallisce:

Error response from daemon: Get https://registry-1.docker.io/v2/: http: server gave HTTP response to HTTPS client
Error response from daemon: Get https://registry-1.docker.io/v2/: http: server gave HTTP response to HTTPS client
Unable to find image 'discourse/base:2.0.20230502-0058' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: http: server gave HTTP response to HTTPS client.

Il modo più semplice che vedo per eseguire gli aggiornamenti è utilizzare un’altra macchina non sulla stessa rete e scaricare l’ultima immagine base di Discourse… quindi in qualche modo inviarla o trasferirla alla macchina da aggiornare. Poi, in qualche modo, forzare Discourse o il launcher a cercare localmente e non provare a scaricare da Docker Hub… Ho visto vari thread in cui quasi trovo che questo potrebbe funzionare ma niente di chiaro. Come potrei fare?

docker save e docker load ti aiuteranno in questo.

@Falco Potresti fornirmi esempi specifici di comandi su come salvare e caricare… tipo cosa salvare e dove salvare e quale comando completo per caricare?

Ho usato la stessa idea da questo post molte volte con successo

Posso preparare un esempio più specifico domani quando sarò al mio computer

1 Mi Piace

@Falco - Grazie mille, attendo con ansia l’esempio desktop… Spero di aver capito correttamente perché temo di cancellare i miei siti host con qualcosa di più di un semplice “aggiornamento”

Ho il mio sito Docker di Discourse aziendale obsoleto che contiene determinate informazioni che non posso spostare al di fuori dell’azienda… a causa delle regole aziendali, ecc. Ce ne sono 4 diverse… chiamiamole: np.falcoisgreat.com, stg.falcoisgreat.com, tst.falcoisgreat.com e www.falcoisgreat.com sono tutte dietro circa 4 piccole versioni… non possono più accedere al Docker hub quando il launcher tenta di recuperare l’ultima immagine base di Docker.

Quindi, nel mondo reale delle libertà di internet, ho avviato una nuova macchina Ubuntu con Discourse Docker solo per scaricare l’ultima immagine base di Discourse Docker (attualmente su https://discourse1.codeplus.cloud) - Ora quello che intendo fare è solo ottenere la nuova immagine, senza contenuto, senza nulla, comprimerla con docker save e poi scaricare quel file tar su, diciamo, np.falcoisgreat.com con curl o sftp e poi usare docker load?

Non conosco i dettagli di questo e cercherò di informarmi leggendo, ma quello che mi preoccupa è cancellare il contenuto e la configurazione attuali di “np.falcoisgreat.com” — Farò dei backup ovviamente, ma per me è meglio conoscere un modo per non cancellare nulla. Potete confermare che questa soluzione è destinata a fare quello che penso che sia destinata a fare?

Grazie!

Essere:

  • server1 il server con accesso a Internet

  • server2 un server che non può raggiungere DockerHub

Fare:

ssh root@server1
docker pull discourse/base:2.0.20230502-0058


# se server1 può raggiungere server2
docker save discourse/base:2.0.20230502-0058 | bzip2 | ssh root@server2 docker load
# attendere il completamento e uscire da server1
ssh root@server2
cd /var/discourse
./launcher rebuild app


# se server1 non può raggiungere server2
docker save -o /tmp/discourse-base-image.tar discourse/base:2.0.20230502-0058
# trasferire il file su server2 tramite chiavetta USB, ftp, floppy disk, ecc.
ssh root@server2
docker load -i /tmp/discourse-base-image.tar
cd /var/discourse
./launcher rebuild app
2 Mi Piace

È molto bello. Non lo sapevo.

L’unico trucco, quindi, è sapere come e quando cambiare discourse/base:2.0.20230502-0058.

E penso che sia solo

cd /var/discourse
git pull
DISCOURSE_BASE=$(grep -e ^image= $DISCOURSE_DOCKER_SRC/launcher|cut -d'\"' -f2)
docker pull $DISCOURSE_BASE

E così via con il comando save.

1 Mi Piace

Grazie @Falco finora tutto bene. Due ambienti aggiornati!

2 Mi Piace

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