Docker Discourse Host-Betriebssystem-Standards für Betriebsabläufe

Es gibt viele Anleitungen, die großartig sind, aber eine fehlt mir oder existiert gar nicht, die Folgendes abdeckt:

  • Für diejenigen, die selbst hosten: Wie konfiguriert man das Host-Betriebssystem (z. B. Ubuntu) so, dass es ausschließlich den Docker-Container hostet?
  • Sobald die Site läuft: Welche Standardarbeitsanweisungen (SOP) sollte man für das Host-Betriebssystem einhalten, z. B. Prüfung auf Hacks, wie man vom Host-Betriebssystem in den Container wechselt, wie man grundlegende Informationen für den Notfall vorbereitet usw.?

Mir ist bewusst, dass das Handbuch je nach Betriebssystem und Site unterschiedlich ausfällt, aber es gibt viele Gemeinsamkeiten.

Da das Betriebssystem nur einen Docker-Container ausführen wird, gibt es überflüssige Dateien und Dienste – doch was ist eigentlich überflüssig? Benötigt man eine grafische Benutzeroberfläche (GUI) samt aller notwendigen Komponenten und Pakete?

Sobald die Site läuft, ist es im Notfall, falls die Site ausfällt, notwendig, Details über die Site zu haben, wie z. B. ihre Konfiguration, Schritte zum vollständigen Neuaufbau, die Version der laufenden Software usw. Welche dieser Details sind wirklich wichtig? Ich habe bereits eine gute Vorstellung, aber es wäre schön zu sehen, was andere aus Erfahrung wissen und denken.


Als Beispiel für die Erstellung einer SOP (Standardarbeitsanweisung) für unsere Site hier die verschiedenen Ergebnisse von pstree: einmal vom Host-Betriebssystem und einmal innerhalb des Docker-Containers. Braucht der Host wirklich all diese Prozesse? In den nächsten Tagen werde ich die Antwort sicher selbst herausfinden, aber vielleicht wissen es andere schon und können uns das mitteilen.

    systemd─┬─ModemManager───2*[{ModemManager}]
            ├─NetworkManager─┬─dhclient
            │                └─2*[{NetworkManager}]
            ├─accounts-daemon───2*[{accounts-daemon}]
            ├─2*[agetty]
            ├─atd
            ├─containerd─┬─containerd-shim─┬─boot───runsvdir─┬─runsv───rsyslogd───2*[{rsyslogd}]
            │            │                 │                 ├─runsv───cron
            │            │                 │                 ├─runsv───unicorn_launche─┬─ruby─┬─ruby───22*[{ruby}]
            │            │                 │                 │                         │      ├─6*[ruby───8*[{ruby}]]
            │            │                 │                 │                         │      ├─2*[ruby───9*[{ruby}]]
            │            │                 │                 │                         │      └─5*[{ruby}]
            │            │                 │                 │                         └─sleep
            │            │                 │                 ├─runsv─┬─redis-server───3*[{redis-server}]
            │            │                 │                 │       └─svlogd
            │            │                 │                 ├─runsv─┬─postmaster───9*[postmaster]
            │            │                 │                 │       └─svlogd
            │            │                 │                 └─runsv───nginx───5*[nginx]
            │            │                 └─10*[{containerd-shim}]
            │            └─18*[{containerd}]
            ├─cron
            ├─dbus-daemon
            ├─dockerd─┬─docker-proxy───8*[{docker-proxy}]
            │         ├─docker-proxy───7*[{docker-proxy}]
            │         └─16*[{dockerd}]
            ├─irqbalance───{irqbalance}
            ├─lvmetad
            ├─lxcfs───4*[{lxcfs}]
            ├─networkd-dispat───{networkd-dispat}
            ├─polkitd───2*[{polkitd}]
            ├─rsyslogd───3*[{rsyslogd}]
            ├─sshd───sshd───sshd───bash───pstree
            ├─sudo───docker───11*[{docker}]
            ├─systemd───(sd-pam)
            ├─systemd-journal
            ├─systemd-logind
            ├─systemd-resolve
            ├─systemd-timesyn───{systemd-timesyn}
            ├─systemd-udevd
            └─wpa_supplicant
boot───runsvdir─┬─runsv───rsyslogd───2*[{rsyslogd}]
                ├─runsv───cron
                ├─runsv───unicorn_launche─┬─ruby─┬─ruby───22*[{ruby}]
                │                         │      ├─6*[ruby───8*[{ruby}]]
                │                         │      ├─2*[ruby───9*[{ruby}]]
                │                         │      └─5*[{ruby}]
                │                         └─sleep
                ├─runsv─┬─redis-server───3*[{redis-server}]
                │       └─svlogd
                ├─runsv─┬─postmaster───9*[postmaster]
                │       └─svlogd
                └─runsv───nginx───5*[nginx]

EDIT

Für eine minimale Ubuntu-Konfiguration siehe: Minimal Ubuntu
Hinweis: Ich habe dies bisher noch nicht ausprobiert, leite es aber einfach weiter.

Was alt ist und funktioniert, gilt in der Regel weiterhin. Siehe: Discourse in einem Docker-Container von Sam. :grinning:
Dies gibt viele Einblicke in die Geschichte der Nutzung von Discourse in Docker und wie es funktioniert.

2 „Gefällt mir“