Discourse-Installation auf einem Server ohne DockerHub-Zugriff

@sam Sam, mein Unternehmen blockiert jetzt Docker Hub. Ich betreibe Docker für Discourse in mehreren Umgebungen und muss ein Upgrade durchführen. Es schlägt natürlich fehl:

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.

Der einfachste Weg, den ich sehe, um Upgrades durchzuführen, ist, eine andere Maschine zu verwenden, die sich nicht im selben Netzwerk befindet, und das neueste Discourse-Basisimage herunterzuladen… dann irgendwie auf die zu aktualisierende Maschine zu übertragen oder zu pushen. Dann irgendwie Discourse oder den Launcher zwingen, lokal zu suchen und nicht zu versuchen, von Docker Hub zu ziehen… Ich habe verschiedene Threads gesehen, in denen ich fast das Gefühl hatte, dass dies funktionieren könnte, aber nichts Klares. Wie würde ich das machen?

docker save und docker load helfen Ihnen dabei.

@Falco Könnten Sie mir bitte spezifische Beispielbefehle geben, wie ich speichern und laden kann… wie z. B. was ich speichern soll, wohin ich speichern soll und welchen vollständigen Befehl ich zum Laden verwenden soll?

Ich habe die gleiche Idee aus diesem Beitrag schon oft erfolgreich angewendet

Ich kann morgen ein spezifischeres Beispiel kochen, wenn ich an meinem Desktop bin

1 „Gefällt mir“

@Falco - Vielen Dank, ich freue mich auf das Desktop-Beispiel… Hoffentlich verstehe ich das richtig, da ich befürchte, meine Host-Site(s) mit mehr als nur einem „Upgrade“ zu löschen

Ich habe meine Firmen-Discourse-Docker-Site, die veraltet ist und bestimmte Informationen enthält, die ich aufgrund von Firmenregeln usw. nicht außerhalb des Unternehmens verschieben kann. Es gibt 4 verschiedene davon… nennen wir sie: np.falcoisgreat.com, stg.falcoisgreat.com, tst.falcoisgreat.com und www.falcoisgreat.com, sie alle liegen hinter etwa 4 kleinen Versionen… sie können nicht mehr auf den Docker-Hub zugreifen, wenn der Launcher versucht, das neueste Docker-Basisimage abzurufen.

Also habe ich in der realen Welt der Internetfreiheiten eine neue Ubuntu-Box mit Discourse Docker aufgesetzt, nur um das neueste Discourse Docker-Basisimage herunterzuladen (eigentlich unter https://discourse1.codeplus.cloud) - Was ich jetzt vorhabe, ist, nur das neue Image ohne Inhalt, ohne irgendetwas zu erhalten, es mit docker save zu tarren und dann diese Tar-Datei mit curl oder sftp nach z. B. np.falcoisgreat.com zu ziehen und dann docker load zu verwenden?

Ich kenne die Einzelheiten nicht und werde nachschauen und lesen, aber ich befürchte, dass ich den aktuellen Inhalt und die Konfiguration von „np.falcoisgreat.com“ lösche — Ich werde natürlich Backups erstellen, aber für mich ist es am besten, einen Weg zu kennen, nichts zu löschen. Bitte bestätigen Sie, dass diese Lösung dazu gedacht ist, das zu tun, was ich denke, dass sie tun soll?

Danke!

Seien Sie:

  • server1 der Server mit Internetzugang
  • server2 ein Server, der DockerHub nicht erreichen kann

Tun Sie:

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


# wenn server1 server2 erreichen kann
docker save discourse/base:2.0.20230502-0058 | bzip2 | ssh root@server2 docker load
# warten Sie, bis es abgeschlossen ist, und verlassen Sie server1
ssh root@server2
cd /var/discourse
./launcher rebuild app


# wenn server1 server2 nicht erreichen kann
docker save -o /tmp/discourse-base-image.tar discourse/base:2.0.20230502-0058
# übertragen Sie die Datei auf server2 über einen USB-Stick, FTP, Disketten usw.
ssh root@server2
docker load -i /tmp/discourse-base-image.tar
cd /var/discourse
./launcher rebuild app
2 „Gefällt mir“

Das ist sehr cool. Das wusste ich nicht.

Der einzige Trick besteht dann darin, zu wissen, wie und wann man discourse/base:2.0.20230502-0058 ändert.

Und ich denke, das ist einfach

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

Und so weiter mit dem save-Befehl.

1 „Gefällt mir“

Danke @Falco, bisher läuft alles gut. Zwei Umgebungen wurden aktualisiert!

2 „Gefällt mir“

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