Seite 5 von 6

Re: Erster Container

Verfasst: Di Feb 05, 2019 8:41 pm
von tger977
Hi, jetzt macht ihr mich doch neugierig. Dockerfile anpassen um ein Image zu erzeugen versteh ich noch.

Wo aber nutzt ihr die Befehle "docker run" und "docker build" genau? In der portaineroberfläche? Dort kann ich doch nur rumklicken und habe keine CLI :confusion-scratchheadyellow:

Ich glaube da kann ich noch was lernen... Ich habe nämlich auch noch das Problem daß ich meinen vcontrold Dämon zwar im Docker zum laufen bekomme ihn aber bei einem Neustart des Wolfs immer über die Konsole wieder manuell starten muss mit dem Befehl "vcontrold start". Wenn ich diesen Befehl aber in portainer beim Containerbuild per Oberfläche in Command oder Entrypoint eintrage lässt sich der Container nicht bauen.

Hinzugefügt nach 21 Minuten 36 Sekunden:
hier mal noch ein paar Screenshots dazu, vielleicht wird es dadurch klarer:

zuerst wie ich den Container erstelle per portainer
Bild

mit diesem kann ich dann eine Konsole öffnen und dort den Befehl "vcontrold start" eingeben und der Dämon läuft sauber:
Bild

nun suche ich nach einer Lösung diese Startbefehl in der Containereinstellung vom ersten Bild unterzubringen. Da habe ich schon gefühlt alle Möglichkeiten durchprobiert wie ich den Befehl unter command oder entrypoint absetzen kann, bekomme aber nur Fehlermeldungen beim bauen des Containers...

Re: Erster Container

Verfasst: Di Feb 05, 2019 9:14 pm
von murelli146
So das war der richtige Hinweis.
Habs am laufen zwar nicht so wie ich ursprünglich wollte, aber eigentlich besser. :clap:

Folgendes funktionierte:

Code: Alles auswählen

FROM debian
COPY root / 
#ENTRYPOINT ["/usr/bin/knxdmxd","-d","-c","/etc/knxdmxd.conf","-u","ip:192.168.1.62","-p","/var/run/knxdmxd.pid"]
ENTRYPOINT ["/usr/bin/knxdmxd","-c","/etc/knxdmxd.conf","-u","ip:192.168.1.62","-p","/var/run/knxdmxd.pid"]
Der -d Parameter lässt den knxdmxd als daemon laufen. Ohne diesen Parameter ist er im Debugmodus und gibt alles auf der Konsole aus.
Wenn ich den Container dann mit dem Befehl

Code: Alles auswählen

docker run -d knxdmxdocker
starte, läuft er und gibt sogar alles im logfile vom Container aus.
Jetzt muss ich nur das logfile im Treiber zeitlich begrenzen damit das file nicht ins unermessliche wächst.

Aber ich möchte es trotzdem verstehen warum sich der Container beendet.
Darf man in einen Container keinen dienst in den Hintergrund bringen. Kann das der Exit 0 Grund sein ?

Hinzugefügt nach 18 Minuten 40 Sekunden:
tger977 hat geschrieben: Di Feb 05, 2019 8:41 pm Wo aber nutzt ihr die Befehle "docker run" und "docker build" genau? In der portaineroberfläche? Dort kann ich doch nur rumklicken und habe keine CLI :confusion-scratchheadyellow:
Warte noch auf meinen TW darum habe ich angefangen mich etwas mit Docker in einer VM zu beschäftigen.
Habe zuerst alles über Portainer gemacht. Ist sehr gut aufgebaut, doch irgenwann habe ich die Konsole benutzt weil das beim experimentieren schneller ging.
Über Portainer macht man das selbe und letztlich wird im Hintergrund der Befehl beim betätigen von "Deploy t. Container" ausgeführt.

Versuch mal in der Oberfläche bei Entry Point

Code: Alles auswählen

vcontrold,start
einzugeben und Console auf None setzen.

Falls das nicht funktioniert, welche Meldung bekommst du?

Hinzugefügt nach 6 Minuten 6 Sekunden:
Bei mir sieht der Befehl im Portainer bei Entry Point so aus

Code: Alles auswählen

/usr/bin/knxdmxd,-c,/etc/knxdmxd.conf,-u,ip:192.168.1.62,-p,/var/run/knxdmxd.pid
Eventuell musst du noch den Pfad zur bin anpassen.

Code: Alles auswählen

/pfad/zum/vcontrold,start

Re: Erster Container

Verfasst: Di Feb 05, 2019 9:17 pm
von tger977
murelli146 hat geschrieben: Di Feb 05, 2019 9:14 pm Falls das nicht funktioniert, welche Meldung bekommst du?
bekomme damit dann folgende Meldung:

Bild

Re: Erster Container

Verfasst: Di Feb 05, 2019 9:28 pm
von murelli146
murelli146 hat geschrieben: Di Feb 05, 2019 9:14 pm Bei mir sieht der Befehl im Portainer bei Entry Point so aus

Code: Alles auswählen

 
/usr/bin/knxdmxd,-c,/etc/knxdmxd.conf,-u,ip:192.168.1.62,-p,/var/run/knxdmxd.pid
Eventuell musst du noch den Pfad zur bin anpassen.

Code: Alles auswählen

 
/pfad/zum/vcontrold,start

Re: Erster Container

Verfasst: Di Feb 05, 2019 9:39 pm
von tger977
auch mit Pfadangabe geht es leider nicht.

zuerst habe ich mit der ursprünglichen Konfig per Konsole nachgesehen wo die vcontrold Datei liegt:

Bild

dann den Pfad eingetragen per

Code: Alles auswählen

/openv/vcontrold-code/vcontrold/vcontrold,start
und console auf "none" gesetzt.

dann diese Meldung :confusion-scratchheadyellow:
Bild

Re: Erster Container

Verfasst: Di Feb 05, 2019 9:43 pm
von murelli146
Hast du bei Command noch das 'Bash' drinnen? Nimm das mal raus, sollte leer sein.

Re: Erster Container

Verfasst: Di Feb 05, 2019 9:47 pm
von tger977
das hab ich schon rausgenommen. Ich hab jetzt grad mal ohne ,start das probiert, damit baut er zumindest jetzt einen Container.

Brauch ich da für das start eine andere Syntax?

Re: Erster Container

Verfasst: Di Feb 05, 2019 10:03 pm
von tger977
hab nun den vcontrold noch nach /usr/local/sbin kopiert (im Image, sehe ich auch wenn ich ihn mit interaktiver Konsole mir ansehe)

ich hab nun auch mal denselben Befehl (der unter Entrypoint nach wie vor nicht funktioniert) unter Command eingegeben, damit baut er den Container. Aber der Dämon läuft trotzdem nicht...

Ich geb erstmal wieder auf und starte weiter manuell... Und hoffe das irgendwann einer ein Tutorial für portainer auf dem TW für Dämonanwendung schreibt. Ohne CLI ist das echt nervig zum rumprobieren (man bekommt ja nichtmal einfach eine Datei in einen Container rein wenn man nicht ein tarball Archiv sich jedesmal selbst zusammenbastelt)

Irgendwie vermisse ich die root Funktionen vom wiregate schon sehr und bin echt am überlegen ob das für mich das wirklich richtige System ist da ich am wiregate solche Dinge schneller zum Laufen gebracht habe.

Re: Erster Container

Verfasst: Di Feb 05, 2019 10:18 pm
von murelli146
Habe mal schnell von meinem EDOMI openv LBS den Startbefehl in Klartext zurück gebaut:
So startet er bei mir auf EDOMI:

Code: Alles auswählen

/usr/local/edomi/main/vcontrol/vcontrold -x /usr/local/edomi/main/vcontrol/vcontrold.xml -d /dev/ttyUSB0 -l vcontrold.log -p 3002
würde heißen z.B.:

Code: Alles auswählen

/usr/local/edomi/main/vcontrol/vcontrold,-x,/usr/local/edomi/main/vcontrol/vcontrold.xml,-d,/dev/ttyUSB0,-l,vcontrold.log,-p 3002

Re: Erster Container

Verfasst: Di Feb 05, 2019 11:03 pm
von tger977
vielen Dank für Deine Bemühungen, Gernot!

Ich habe es auf meine Verhältnisse angepasst:

Code: Alles auswählen

/usr/local/sbin/vcontrold -x /etc/vcontrold/vcontrold.xml -d /dev/usbserial-A902YKZ1 -l vcontrold.log -p 3002
mit den Kommas geht es gar nicht, wenn ich o.g. Klartext unter Command einsetze baut er den Container und macht dann wenn ich im portainer mir die Einstellungen nochmal anzeige folgendes automatisch draus:

Code: Alles auswählen

'/usr/local/sbin/vcontrold' '-x' '/etc/vcontrold/vcontrold.xml' '-d' '/dev/usbserial-A902YKZ1' '-l' 'vcontrold.log' '-p' '3002'
wenn ich nun selbigen String unter entrypoint reinkopiere kommt wieder die Fehlermeldung "no such file or directory" :crying-yellow: :confusion-scratchheadyellow:

Nur in keinem Fall startet der Dämon...

Irgendwie werde ich da nicht schlau draus. Egal, ich leg mich jetzt erstmal hin und schlaf mal drüber. ;)