How to start discourse inside a linux container?

Ich habe versucht, Discourse innerhalb von LXD auf einem Ubuntu-Server auf einem Raspberry Pi 4 mit einer USB-SSD zum Laufen zu bringen, und es hing und lief in Timeouts während der Rebuilds. Das Hängen war schlimmer/früher bei der Verwendung eines Btrfs-Loopback-Speicherpools und später bei der Verwendung eines ZFS-Loopback-Speicherpools. Der Speicher war konstant um 1 GB mit 3 GB Spitzenwerten. Die Hänger ließen SSH/Top ansprechbar sein, aber alle Nutzungsaktivitäten fielen auf vernachlässigbare Werte ab, was darauf hindeutete, dass es aufgegeben hatte.

Heutzutage empfehlen die LXD-Dokumente nur, security.nesting auf den String-Wert true zu setzen, um die Docker-Nutzung zu aktivieren, was ich getan habe. Die LXD-Dokumente haben jedoch auch eine Seite für die Produktionskonfiguration mit etwa 20 Einstellungen, die geändert werden müssen, was ich noch nicht ausprobiert habe.

Am Ende gab ich meinen LXD-Versuch für Discourse auf und ließ Discourse einfach über Docker auf demselben Rechner laufen.

Details zu meinen Bemühungen hier:

Seltsamerweise empfiehlt der untenstehende LXD-Docker-Leitfaden Btrfs, obwohl die LXD-Dokumente davon abraten, und es scheint keine Partition dafür zu verwenden (obwohl sie einige zusätzliche Einstellungen vornehmen, andere Pakete als docker.io installieren und das Btrfs-Volume nur an Docker anhängen), daher frage ich mich, warum ich solche Probleme hatte:

@vmsman Können Sie mehr Details zu Ihrem LXD-Setup mitteilen, wie z. B. Profile, Speicherpools und Systemkonfigurationen, die geändert werden mussten, da Sie anscheinend das bisher erfolgreichste Setup hatten:

Für LXD frage ich mich bei einigen Dingen:

  • Ob Partitionen für Speicherpools anstelle von Loopback-Dateien die Leistungsprobleme ausreichend lösen würden, sodass die Hänger verschwinden
  • Ob die Verwendung von MicroCloud oder einem LXD-Cluster helfen würde, oder die Verwendung von Ceph als Speicherpool

Alles in allem bin ich, obwohl ich Discourse nicht in LXD zum Laufen gebracht habe, sehr beeindruckt von LXD und seiner Benutzerfreundlichkeit. Ich habe zuvor Monate damit verbracht, mit HashiCorp zu kämpfen, da HashiCorp nur an Enterprise-Anwendungsfällen interessiert zu sein scheint. Während LXD einfach funktioniert und die Leute unterstützend genug zu sein scheinen, um kleinen Teams und Indie-Entwicklern Fortschritte zu ermöglichen.