Sphere auf Docker

Rund um die Themen IT-Technik, Server HTML, PHP, und sonstiges
Antworten
Nachricht
Autor
Benutzeravatar
Dieb
Silber Mitglied
Beiträge: 387
Registriert: 15 Mär 2004 14:08

Sphere auf Docker

#1 Beitrag von Dieb » 15 Okt 2017 19:13

Hallöchen,

für einige Tests habe ich vor Sphere auf Docker zu installieren. Kleine Testumgebung für Zuhause.

Soweit habe ich meinen Docker Container vorbereitet.
Einfaches debian:latest Image, mit soweit aktuellen libs.

Leider, durch Ermangelung umfangreicher Linux-Kenntnisse, scheitere ich bei der Installation bei dem Schritt: "ldd spheresvr"

Code: Alles auswählen

	linux-gate.so.1 (0xf7761000)
	libpthread.so.0 => /lib32/libpthread.so.0 (0xf773c000)
	librt.so.1 => /lib32/librt.so.1 (0xf7733000)
	libdl.so.2 => /lib32/libdl.so.2 (0xf772e000)
	libmysqlclient.so.18 => not found
	libstdc++.so.6 => not found
	libm.so.6 => /lib32/libm.so.6 (0xf76d9000)
	libgcc_s.so.1 => not found
	libc.so.6 => /lib32/libc.so.6 (0xf7520000)
	/lib/ld-linux.so.2 (0x56621000)
Irgendwann hatte ich das Problem so ähnlich schon mal und hab es irgendwie gelöst. Glaube durch haufenweise symlinks. ?(


Vielleicht liest hier doch noch einer mit und hat nützliche Ideen :D
Ich höre es, und ich vergesse es.
Ich sehe es, und ich erinnere mich.
Ich tue es, und ich habe es verstanden.

Sirius
Administrator
Beiträge: 713
Registriert: 07 Feb 2004 17:17
Kontaktdaten:

Re: Sphere auf Docker

#2 Beitrag von Sirius » 17 Okt 2017 22:16

Genaues kann ich dir jetzt auch nicht sagen. Aber in früheren Versionen von Debian musste man für Sphere die ia32-libs installieren und in neueren das Paket multiarch-support. Um eben das 32bittige Sphere auf 64bit zum laufen zu bekommen.
-
--> No Signature <--
---

Benutzeravatar
Dieb
Silber Mitglied
Beiträge: 387
Registriert: 15 Mär 2004 14:08

Re: Sphere auf Docker

#3 Beitrag von Dieb » 22 Okt 2017 17:37

Aye :)

Ich habe es auf einem Ubuntu Trusty Container zum laufen gebracht, nachdem mir das mit dem Multiarch Zeugs wieder in die Hände gefallen ist.

Bin leider mit der MySQL Anbindung auf den neueren Versionen fast wahnsinnig geworden. Da Sphere offensichtlich nur die ältere libmysqlclient18 mag und von der libmysqlclient20 nichts wissen will.

Jedenfalls klappt es jetzt soweit ...
Ich höre es, und ich vergesse es.
Ich sehe es, und ich erinnere mich.
Ich tue es, und ich habe es verstanden.

Sirius
Administrator
Beiträge: 713
Registriert: 07 Feb 2004 17:17
Kontaktdaten:

Re: Sphere auf Docker

#4 Beitrag von Sirius » 01 Nov 2017 14:23

Cool, kannst du hier kurz beschreiben wie du dafür vorgegangen bist? Ist denke ich auch mal für andere Interessant zu sehn wie Container erstellt werden.
-
--> No Signature <--
---

Benutzeravatar
Dieb
Silber Mitglied
Beiträge: 387
Registriert: 15 Mär 2004 14:08

Re: Sphere auf Docker

#5 Beitrag von Dieb » 07 Nov 2017 22:10

Gerne :D

Zunächst habe ich mich etwas mit Docker beschäftigt. (Gibt brauchbare Lektüre und Videos dafür.)
Wie des in den Grundzügen funktioniert, wie es zu installieren ist und wie Docker-Compose funktioniert.
Ich arbeite mit Docker auf Windows und auf Linux (Ubuntu).

Um die Verwaltung zu erleichtern kann man sich kleine Hilfs-Programme installieren (auch Docker Images).
Ich benutz zur Zeit "Portainer". Das reicht um die Container einzusehen und ggf. mal einen Container komfortabel zu killen. :D
Natürlich geht das auch alles über die Shell bzw. auf Windows über die PowerShell oder Cmd.

Ich habe mir am Anfang eine kleine "Serverumgebung" mit Hilfe von Docker-Compose aufgebaut.
- Webserver mit PHP auf Alpine
- PHPMyAdmin
- MariaDB-Server + Volume-Container für die DB
- noip container
- certbot container basierend auf debian:jessie-backports


Später habe ich meinen Sphere-Server einfach integriert.
Hier mal ein Auszug aus meinem Docker-Compose-File für den Sphereserver-Part:

Code: Alles auswählen

  
sphere-epika:
    #IMPORTANT: using ubuntu:trusty for libmysqlclient18 support -.-
    image: ubuntu:trusty 
    
    restart: always
    ports:
      - 2596:2596
    tty: true
    networks:
      - database_network
    depends_on:
      - database
    volumes:
      - ./content/sphere/epika:/home/sphere/
      - ./content/server/sphere/epika:/var/www/sphere/epika/
    command: sh -c "./home/sphere/startSphere.sh"
Sobald man sich etwas näher mit den Begrifflichkeiten um Docker beschäftigt wird recht schnell klar, was hier geschieht.
(Schön ist halt, dass Docker die fehlenden Images einfach aus dem Docker-Hub lädt, wenn einer fehlt, wenn die Komposition bzw. ein fehlendes Image gestartet wird.)

In dem Shellscript "startSphere.sh" werden nurmehr zusätzliche Pakete mittels "apt" installiert. Mysql-Client, Cpp Libs usw. was für Sphere halt so benötigt wird. Dabei ist auch auf die Architektur zu achten, wegen der 32bit Unterstützung.

An der Stelle sei angemerkt: "Schade, dass Sphere nicht 64bit unterstützt und nicht mit den neusten MySQL libs arbeitet" - Hätte mir viel Frust gespart :D - aber kommt ja evtl. noch. (Achso und uop-Dateiunterstützung wäre auch geil.)

Sphere selber liegt auf einem externen Volume außerhalb des Containers.
Datenbankunterstützung ist über das "database_network" sicher gestellt.

Am Ende des Scriptes wird quasi das im Sphere-Wiki beschriebene Installations-Procedere ausgeführt, inklusive der Reboot-Schleife, die dann auch gleichzeitig den Container am Leben erhält.

Ist in meinem Fall ist es ein einfaches Quick & Dirty Script. Heiligt dem Zwecke.

Sobald die Kiste läuft und man es irgendwann mal geschafft hat die Einrichtung abzuschließen, kann man mit dem Client relativ normal auf die Bude zugreifen, als würde Sphere direkt auf der Maschine laufen, auf der Docker läuft.

Ich hoffe, das gibt einen kleinen Einblick wie man so etwas mit wenigen mitteln und etwas Frust halbwegs "hinschludern" kann.
Ich höre es, und ich vergesse es.
Ich sehe es, und ich erinnere mich.
Ich tue es, und ich habe es verstanden.

Antworten