IP-Symcon via Docker Engine

Moin!

Vielleicht könntet ihr mal beschreiben, mit welchen Befehlen ihr die Basis baut?!

Dann könnte jeder seine weiteren Befehle posten, um zusätzlichen Kram zu installieren, und jeder hätte so das für sich perfekte IPS-Docker-Image mit allen möglichen brauchbaren Zusätzen :slight_smile: :cool:

Also z.B. erstmal Docker Container aufbauen mit „…“ und dann mit „…“ IPS installieren und dann mit „…“ apcdemon einrichten usw.

Grüße,
Chris

Wo Du Recht hast, hast Du recht :wink: Dies kann sich aber noch ein wenig kompliziert gestalten, speziell wenn man configs mitgibt.

Mein Image basiert auf phusion/baseimage (phusion/baseimage-docker · GitHub) welches mehrere Daemons ermöglicht. Dies widerspricht ein wenig dem Docker Konzept, kann aber durchaus Sinn machen wie bei z.B. symcon. Ich gehe hier aber nicht in die Details, das würde den Rahmen sprengen. Schaut einfach selbst kurz auf das README bei phusion.

  1. [li]Mein ssh Server läuft unter Port 2222, da er sonst mit dem lokalen Host in Konflikt kommen würde, daher die Kopie von sshd_config.[/li]RUN echo 'root:xxxxxxx' | chpasswd
    - Passwort für root

    [li]PYTHON env, Kann man rausnehmen. Ich arbeite mit Websockets und sonstigen python Lösungen wie das Ansteuern von SQLite und FTP. Diese Deamons habe ich für symcon gebaut damit ich von dort aus auf SQLite und FTP Module zugreifen kann.[/li]RUN bash -c 'mkdir -m 777 /mnt/backup'
    - Vorbereitung auf mein Backup Ordner
    ADD config/start_symcon.sh /etc/service/symcon/run
    - Vorbereitung auf den phusion Main Daemon
    COPY config/.symcon /root/
    Dies habe ich nicht mitgegeben :wink: ist die Lizenz für symcon.

# BUILD
build.sh
Hier muss der Pfad zum Dockerfile noch angepasst werden

# RUN
run.sh
Achtung, mount Ordner anpassen oder ggf. entfernen. Mittels dem Attr. „host“, übergebe ich alle Ports dem lokalen Host.
Ich habe somit keine Port Probleme und kann den container jederzeit mit einer Installation zur Laufzeit erweitern, ohne
mich um das durchreichen der Ports zu kümmern.

# EXEC
exec.sh
Zum lokalen container prompt.

Und nun zum Dockerfile (ist auch im Anhang dabei)


FROM phusion/baseimage
MAINTAINER "Andi Zaugg"


# Use baseimage-docker's init system.
CMD ["/sbin/my_init"]

# basic sources
RUN apt-get -y update \
 && apt-get -y install wget unzip nano

# enable ssh deamon
COPY config/sshd_config /etc/ssh/sshd_config
RUN rm -f /etc/service/sshd/down

# ENV for nano
ENV TERM=xterm

# candy style
RUN bash -c 'echo "alias ls=\"ls --color=auto\"" >> ~/.bashrc'
RUN bash -c 'echo "alias ll=\"ls -l\"" >> ~/.bashrc'
RUN bash -c 'echo "echo \"          WELCOME\"" >> ~/.bashrc'
RUN bash -c 'echo "echo \"\"" >> ~/.bashrc'
RUN bash -c 'echo "echo \"\"" >> ~/.bashrc'

# Relocate the timezone file
RUN mkdir -p /config/etc && mv /etc/timezone /config/etc/ && ln -s /config/etc/timezone /etc/
# Set the time zone
RUN echo "Europe/Berlin" > /config/etc/timezone
# Set timezone as specified in /config/etc/timezone
RUN dpkg-reconfigure -f noninteractive tzdata

# set root pwd
RUN echo 'root:xxxxxxx' | chpasswd

# ---------------------------------------------------------
# PYTHON ENV
RUN apt-get -y install python-dev python-pip python-PIL
RUN pip install websocket-client Flask-Sockets pexpect

# ---------------------------------------------------------
# ip symcon
RUN bash -c 'mkdir -m 777 /mnt/backup'

RUN \
    apt-get -y install libedit2 php5-cli php5-readline php5-imap

RUN \
    echo "deb [arch=amd64] http://apt.ip-symcon.de/ stable main" >> /etc/apt/sources.list &&\
    wget -qO - http://apt.ip-symcon.de/symcon.key | apt-key add - &&\
    apt-get update

RUN \
    apt-get -y install symcon

RUN \
    locale-gen de_DE.UTF-8 &&\
    locale-gen en_US.UTF-8 &&\
    dpkg-reconfigure locales

RUN mkdir /etc/service/symcon
ADD config/start_symcon.sh /etc/service/symcon/run

COPY config/symcon_start.sh /usr/bin/
COPY config/symcon_stop.sh /usr/bin/
COPY config/.symcon /root/

# migration
# COPY symconsources/usr/* /usr/share/symcon/

# ---------------------------------------------------------
# Clean up APT when done.
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*


Bei Fragen einfach fragen
gruss Andi

symcon.zip (4.18 KB)

Ja super, so hab ich mir das vorgestellt :cool: DANKE!

Jetzt hat jeder schon mal eine gute Basis um selbst zu basteln :slight_smile: Und natürlich darf jeder seine Sachen dann hier posten, damit es mit der Zeit immer einfacher wird sich seine Top-IPS-Docker-Image zu basteln :slight_smile:

Grüße,
Chris

Mal interessehalber:
Nutzeigentlich jemand mein blockmove/symcon image?

Würde mich über eine Rückmeldung freuen.

Gruß
Dieter

Ich habe das Dockerfile als Basis für mein eigenes Image genutzt. Dein Image selbst nutze ich nicht mehr, weil ich nicht den ganzen Netzwerk-Host auf meiner Synology freigeben kann und man auch nach jedem neuen Release den Container neu bauen muss. Leider gibt es wohl keine Möglichkeit ohne den Container selbst laden und zu starten um festzustellen, welches IPS-Release im aktuellen Image drin ist.

Aber Danke für die schöne Vorlage!
Tommi

Nutzen wäre zu viel gesagt, ich wills mir gerade auf meiner Synology installieren:)

Dazu eine Frage: Habe auf der Synology die Shares angelegt und das Docker Image gestartet. Danach wurden die Unterverzeichnisse mit Starten des Images angelegt. Soweit sieht erstmal alles gut aus. wenn ich aber versuche das Terminal-Fenster zu öffnen kommt die (Fehler-?) Nachricht Socket close.Mach ich da was falsch?

Cheers Dumbo

Ich hab heute auf die neue Verzeichnis-Struktur für RC1 umgestellt.
Also beachtet bitte, dass jetzt auch /var/lib/symcon übergeben werden muß.
Vor der Migration bitte unbedingt die Daten sichern und dann eure Config in das neue Verzeichnis kopieren.

Die Geschichte ist noch nicht ausgiebig getestet … Also etwas Vorsicht walten lassen :slight_smile:

Gruß
Dieter

Hi zusammen,

Ich benutze das blockmove IPS Image auf meiner Synology Diskstation.
Für meine FS20 Komponenten.benutze ich das FHZ1000, was üblicherweise über USB angesprochen wird. Hat es hier im Forum schon jemand geschafft den USB Port auf der Diskstation an den Docker Container zu übergeben und wenn ja, wie?

Danke für eure Hilfe im Voraus!
Viele Grüße
Tobias

Erkennt die Diskstation die FHZ als Device?
Schau mal ob irgendein /dev/ttyUSBx beim Einstecken der FHZ angelegt wird.
Für die FHZ brauchst du das ftdi_sio Modul.
Wenn ich Google bemühe, dann gibt es wohl auch ein „USB Serial Drivers package“

Gruß
Dieter

Hallo Dieter,

Vielen Dank für den Hinweis. Leider erkennt die Diskstation das Device nicht einfach so :frowning: Es wird im /dev/ Ordner kein USB Device angezeigt. Ich hatte Ja die Hoffnung, dass man den USB Anschluss wie in z.B. einer VMware VM einfach an Docker übergeben kann und man den entsprechenden Devicetreiber erst im Docker Container installieren muss.

Jetzt werde ich mich mal schlau machen, wie ich den entsprechenden Treiber auf meiner Diskstation installieren kann.

Trotzdem bleibt meine anfangs gestellte frage bestehen, ob es in der DiskStation möglich ist ein Device an den Docker Container zu übergeben. Wenn das sowieso nicht geht, müsste ich mir auch gar nicht erst die Mühe machen den ftdi Treiber zu installieren :wink:

Grüße
Tobias

Hallo Dieter,

juchuuuuu, es funktioniert! Falls Interesse besteht, Kann ich meinen Lösungsweg gerne hier dokumentieren.

Jetzt muss ich erst mal in den Shop und meine Subscription Verlängerung kaufen :smiley:

Danke nochmals für den Hinweis mit dem Device.

Grüße und gute Nacht,
Tobias

Immer her damit … :slight_smile:

Hallo Leute,

ist es möglich mein Symcon 4.0 (keine Beta) der Aktuell auf einer Zotac ZBOX mit Ubuntu Server läuft auf meine Synology NAS via Docker zu bringen?

Gruß

Sewo,
was für eine Synology hast du?
Evtl. kannst du ja auch phpvirtualbox nutzen anstatt Docker.

Hi,

Habe die 716+.
Da ist aber das Risiko vorhanden das die VirtualBox nach einem System Update nicht mehr funktioniert.
Deswegen dachte ich an Docker weil er von Synology unterstützt wird.

Gruß

Achso,

ich persönlich habe noch keine schlechten Erfahrungen gemacht wenn eine neue DSM Version
veröffentlicht wird. Ich muss dazu sagen, dass ich auch nicht immer sofort update.
Mit Docker persönlich habe ich noch keine Erfahrungen auf der Synology.

Du kannst das hier beschriebene Dockerimage auf einer Intel Synology nutzen und die bisherigen Einstellungen übernehmen(kopieren) Problematisch sind allerdings die Geräte, die direkt angeschlossen werden. Im Docker kannst Du nur netzwerkbasierte Geräte nutzen

Hallo Tommi,

tolle Anleitung :slight_smile: IPS Läuft jetzt auch auf meiner DS

Wie bekomme ich mein Backup auf die NAS Version bzw. in welchen Ordner:confused:

Gruß

Wie bekomme ich mein Backup auf die NAS Version bzw. in welchen Ordner

z.B. in dem man in auf dem NAS unter docker/symcon noch ein Verzechnis backup anlegt und das beim Start and den IPS Symcon-Ordner bindet


... -v /docker/symcon/backup:/usr/symcon/backup

–ungetestet, komme gerade nicht ran.

Tommi

Hi,

hat sich erledigt.
Ich hätte etwas genauer lesen sollen:o

ich musste noch " /var/lib/symcon" einbinden.

Gruß