Ergebnis 1 bis 8 von 8
  1. #1
    Anwender
    Registriert seit
    24.08.2018
    Beiträge
    3

    Standard Zugriff auf MariaDB aus Docker Container

    Hallo,

    ich experimentiere gerade ein wenig mit Docker auf meiner DS 916+. Ich habe hier keinerlei Erfahrungen, so dass ich davon ausgehe, das ich bei meinem missglückten ersten Testballon schlicht einen Arbeitsschritt übersehen habe. Leider erkenne ich nicht welchen, daher hoffe ich, dass ihr mir helfen könnt.

    Ich versuche eine xWiki Conainer zu nutzen. Als Datenbank soll hierbei die bereits ohne Docker auf dem NAS laufende MariaDB verwendet werden.

    Folgendes habe ich gemacht:

    • Per Synology Docker GUI das Paket xwiki:latest heruntergeladen.
    • Hieraus einen Container erzeugt.
    • Die Umgebungsvariablen DB_HOST, DB_DATABASE, DB_USER und DB_PASSWORT gesetzt. Hierbei habe ich bei DB_HOST den Port mit angegeben (per : abgetrennt), da ich gerne die MariaDB 10 verwenden möchte.
    • Die Umgebungsvariable xwiki auf mysql_tomcat gesetzt.
    • Den Container direkt im Host Netzwerk angesiedelt.
    • Passende Datenbank nebst user in der MariaDB eingerichtet.


    Das ganze war insofern erfolgreich, dass ich den xwiki per Browser erreichen kann. Allerdings präsentiert dieser mir lediglich einen JAVA Stacktrace, da die Anwendung offensichtlich in eine Exception gelaufen ist. Die untersten 4 Einträge in diesem Stacktrace deuten darauf hin, dass die Datenbankverbindung nicht zustande kommt, somit muss ich davon ausgehen, dass es der Anwendung nicht gelingt aus dem Container auf die Datenbank zuzugreifen.
    ( java.net.UnknownHostException: db => com.mysql.jdbc.exceptions.jdbc4.CommunicationsExce ption: Communications link failure => java.sql.SQLException: Cannot create PoolableConnectionFactory (Communications link failure => org.hibernate.HibernateException: Could not create a DBCP pool. There is an error in the Hibernate configuration file, please review it. )

    Was habe ich vergessen um dem Container dies zu ermöglichen?

    Vielen dank für eure Unterstützung!

    PS: Leider erlaubt es mir die Maximallänge für Beiträge hier nicht den Stacktrace wiederzugeben, was ich gerne getan hätte, falls da jemand mehr herauslesen kann als ich (als jemand der kaum Java Erfahrungen hat).

  2. #2
    Anwender
    Registriert seit
    12.04.2016
    Beiträge
    658

    Standard

    Bitte Screenshots oder docker-compose.yml Datei posten.

  3. #3
    Anwender
    Registriert seit
    01.02.2011
    Beiträge
    260

    Standard

    Zitat Zitat von BoxedCube Beitrag anzeigen
    Hallo,[*]Die Umgebungsvariablen DB_HOST, DB_DATABASE, DB_USER und DB_PASSWORT gesetzt. Hierbei habe ich bei DB_HOST den Port mit angegeben (per : abgetrennt), da ich gerne die MariaDB 10 verwenden möchte.
    Hast du Mal versucht DB_PORT in den Umgebungsvariablen, statt per Doppelpunkt getrennt in DB_HOST, anzugeben? Hatte ich nämlich gestern auch erst diesen Fall, als ich LibreNMS, einem Network Monitor System aufgesetzt habe. Port 3306 ist MariaDB 5 und Port 3307 sollte MariaDB 10 sein.
    Soweit ich weiß, muss dies jedoch auch der jeweilige Docker-Container unterstützen...

    Ach ja noch eins, wie hast du die DB in MariaDB angelegt? Per phpMyAdmin oder über die Kommandozeile auf der Diskstation?
    Michael
    DS918+ (1GB) - 2x2 TB WD Red SHR
    DS916+ (8GB) - 2x3 TB WD Red SHR/Btrfs und 2x4 TB Seagate IronWolf, SHR/Btrfs
    DS214+ (1GB) - 1 TB WD Red (Testserver)
    DS211J - 2x2 TB Seagate Constellation ES JBOD (Backup System)
    USV: APC RS 900G

  4. #4
    Anwender
    Registriert seit
    24.08.2018
    Beiträge
    3

    Standard

    Hallo Yippie,

    danke für deine Antwort.

    Ja, DB_PORT hatte ich auch auf gut Glück schon mal probiert, obwohl ich keine entsprechende Doku dazu gefunden habe. Ich habe den Versuch gerade noch mal wiederholt, um Vertipper auszuschließen (aus selben Grund habe ich auch den DB_HOST aus der Config eines Docker freien Dienstes Kopiert )

    Den Datenbankuser habe ich per phpMyAdmin angelegt und dabei die Option benutzt eine gleichnamige Datenbank mit zu erstellen. Entsprechend hat der user alle Rechte (außer GRANT) auf der Datenbank.
    Ich habe das ganze übrigens auch in der MariaDB 5 gemacht und die Portangabe weggelassen (3306 ist ja der Standard Port) leider führte auch das zu keinem Erfolg (zumal ich eigentlich die MariaDB 10 verwenden möchte).

    Gruß,
    Björn

  5. #5
    Anwender
    Registriert seit
    24.08.2018
    Beiträge
    3

    Standard

    Hallo,

    Zitat Zitat von haydibe Beitrag anzeigen
    Bitte Screenshots oder docker-compose.yml Datei posten.
    welche Screenshots benötigst du genau? Nach der Datei muss ich mal suchen, dazu komme ich nur leider heute nicht mehr.

    environment.jpg

    Leider aus dem Bild gescrollt die oben erwähnte xwiki Variable. Beim DB_HOST, habe ich neben der IP auch den lokalen Rechnernamen versucht, beides erfolglos.


    Errorlog.jpg

  6. #6
    Anwender
    Registriert seit
    12.04.2016
    Beiträge
    658

    Standard

    Danke für den Screenshot und vorallem für die Logs. So kann man sehen was das Problem ist und muss keine Vermutungen anstellen.

    Zitat Zitat von https://github.com/xwiki-contrib/docker-xwiki/blob/1617db38480798d515bcef595397e43518150dde/9/mysql-tomcat/xwiki/docker-entrypoint.sh
    safesed "replaceuser" $DB_USER /usr/local/tomcat/webapps/ROOT/WEB-INF/hibernate.cfg.xml
    safesed "replacepassword" $DB_PASSWORD /usr/local/tomcat/webapps/ROOT/WEB-INF/hibernate.cfg.xml
    safesed "replacecontainer" $DB_HOST /usr/local/tomcat/webapps/ROOT/WEB-INF/hibernate.cfg.xml
    safesed "replacedatabase" $DB_DATABASE /usr/local/tomcat/webapps/ROOT/WEB-INF/hibernate.cfg.xml
    Zitat Zitat von https://github.com/xwiki-contrib/docker-xwiki/blob/1617db38480798d515bcef595397e43518150dde/9/mysql-tomcat/xwiki/hibernate.cfg.xml
    <property name="connection.url">jdbc:mysql://replacecontainer/replacedatabase?useSSL=false</property>
    <property name="connection.username">replaceuser</property>
    <property name="connection.password">replacepassword</property>
    Die Variable DB_HOST ersetzt den Platzhalter "replacecontainer", wodurch nach ersetzen von "replacedatabase" durch DB_DATABASE ein gültiger jdbc-Connection-String erzeugt wird.
    IP:Port für DH_Host ist valide. Sprich: hier sieht eigentlich alles richtig aus.

    -Vermutung: Du hast die Firewall an? Kannst Du sie testweise mal deaktivieren und es erneut versuchen?-

    Wie konnte ich nur übersehen, dass dort eine UnknownHostException für "db" angegeben ist. Sieht so aus, als wenn das Entrypoint-Skript die übergebenen Umwelt-Parameter ignoriert!

    Welches Imag:Tag verwendest Du den genau?

  7. #7
    Anwender
    Registriert seit
    16.05.2013
    Beiträge
    47

    Standard

    Hi, habt ihr da nochmal die finalen Einstellungen, mit denen es klappt?
    Ich überlege auch XWIKI zu verwenden ...

    Danke für jeden Hinweis.

  8. #8
    Anwender
    Registriert seit
    25.03.2020
    Beiträge
    1

    Standard

    Servus, ich bin noch ein wenig Laie, was die Dockernutzung angeht und würde sehr gerne xwiki unter docker in der 718 nutzen.
    Findet man irgendwo ein howto? Ich such mir gerade einen Wolf.
    Danke Euch.

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 15.01.2019, 09:42
  2. Externer Zugriff auf Webserver im Docker Container
    Von akleiser im Forum Webserver
    Antworten: 3
    Letzter Beitrag: 07.11.2018, 08:52
  3. Antworten: 2
    Letzter Beitrag: 17.06.2018, 17:12
  4. Antworten: 10
    Letzter Beitrag: 18.10.2017, 11:40
  5. Docker Zugriff auf Container
    Von avon im Forum Sonstiges
    Antworten: 0
    Letzter Beitrag: 15.09.2015, 16:39

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •