Ankündigung

Einklappen
Keine Ankündigung bisher.

Edomi im Docker-Container - revised

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #31
    Für die Syno gibt es aber noch keine andere Lösung als mit den Eingriffen in die Syno-Interna wie im Posting #9 https://knx-user-forum.de/forum/proj...67#post1133767 beschrieben?
    EPIX
    ...und möge der Saft mit euch sein...
    Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

    Kommentar


      #32
      Solange es nicht gelingt, die Websocket-Verbindung sauber in den Container zu bekommen, leider nicht.
      Kind regards,
      Yves

      Kommentar


        #33
        Hallo Yves,

        wie komme ich den via ssh (Putty) und sftp (WinSCP) auf den Docker? Das sollte doch mit dem Port 22222 und der Host-IP gehen, oder?
        Mit dem 22222 bekomme ich aber keine Verbindung und mit dem 22 komme ich nur auf das Host-System.

        Hier mal die aktuelle Konfig:
        Code:
        docker inspect edomi
        [
            {
                "Id": "e6cbd918ac3f020c18aa71e6baa9299a90861d9d9906a4ee5075cc8b0e692a01"                                                                                   ,
                "Created": "2017-09-28T08:55:37.860222335Z",
                "Path": "/root/start.sh",
                "Args": [],
                "State": {
                    "Status": "running",
                    "Running": true,
                    "Paused": false,
                    "Restarting": false,
                    "OOMKilled": false,
                    "Dead": false,
                    "Pid": 5192,
                    "ExitCode": 0,
                    "Error": "",
                    "StartedAt": "2017-09-28T08:55:38.460058114Z",
                    "FinishedAt": "0001-01-01T00:00:00Z"
                },
                "Image": "sha256:057f62e2939176a8101734321e837c270d50c5184f7355dad24e41c                                                                                   1d6bf1393",
                "ResolvConfPath": "/var/lib/docker/containers/e6cbd918ac3f020c18aa71e6ba                                                                                   a9299a90861d9d9906a4ee5075cc8b0e692a01/resolv.conf",
                "HostnamePath": "/var/lib/docker/containers/e6cbd918ac3f020c18aa71e6baa9                                                                                   299a90861d9d9906a4ee5075cc8b0e692a01/hostname",
                "HostsPath": "/var/lib/docker/containers/e6cbd918ac3f020c18aa71e6baa9299                                                                                   a90861d9d9906a4ee5075cc8b0e692a01/hosts",
                "LogPath": "/var/lib/docker/containers/e6cbd918ac3f020c18aa71e6baa9299a9                                                                                   0861d9d9906a4ee5075cc8b0e692a01/e6cbd918ac3f020c18aa71e6baa9299a90861d9d9906a4ee                                                                                   5075cc8b0e692a01-json.log",
                "Name": "/edomi",
                "RestartCount": 0,
                "Driver": "overlay2",
                "Platform": "linux",
                "MountLabel": "",
                "ProcessLabel": "",
                "AppArmorProfile": "docker-default",
                "ExecIDs": null,
                "HostConfig": {
                    "Binds": null,
                    "ContainerIDFile": "",
                    "LogConfig": {
                        "Type": "json-file",
                        "Config": {}
                    },
                    "NetworkMode": "host",
                    "PortBindings": {
                        "22/tcp": [
                            {
                                "HostIp": "",
                                "HostPort": "22222"
                            }
                        ]
                    },
                    "RestartPolicy": {
                        "Name": "on-failure",
                        "MaximumRetryCount": 0
                    },
                    "AutoRemove": false,
                    "VolumeDriver": "",
                    "VolumesFrom": null,
                    "CapAdd": null,
                    "CapDrop": null,
                    "Dns": [],
                    "DnsOptions": [],
                    "DnsSearch": [],
                    "ExtraHosts": null,
                    "GroupAdd": null,
                    "IpcMode": "shareable",
                    "Cgroup": "",
                    "Links": null,
                    "OomScoreAdj": 0,
                    "PidMode": "",
                    "Privileged": false,
                    "PublishAllPorts": false,
                    "ReadonlyRootfs": false,
                    "SecurityOpt": null,
                    "UTSMode": "",
                    "UsernsMode": "",
                    "ShmSize": 67108864,
                    "Runtime": "runc",
                    "ConsoleSize": [
                        0,
                        0
                    ],
                    "Isolation": "",
                    "CpuShares": 0,
                    "Memory": 0,
                    "NanoCpus": 0,
                    "CgroupParent": "",
                    "BlkioWeight": 0,
                    "BlkioWeightDevice": [],
                    "BlkioDeviceReadBps": null,
                    "BlkioDeviceWriteBps": null,
                    "BlkioDeviceReadIOps": null,
                    "BlkioDeviceWriteIOps": null,
                    "CpuPeriod": 0,
                    "CpuQuota": 0,
                    "CpuRealtimePeriod": 0,
                    "CpuRealtimeRuntime": 0,
                    "CpusetCpus": "",
                    "CpusetMems": "",
                    "Devices": [],
                    "DeviceCgroupRules": null,
                    "DiskQuota": 0,
                    "KernelMemory": 0,
                    "MemoryReservation": 0,
                    "MemorySwap": 0,
                    "MemorySwappiness": null,
                    "OomKillDisable": false,
                    "PidsLimit": 0,
                    "Ulimits": null,
                    "CpuCount": 0,
                    "CpuPercent": 0,
                    "IOMaximumIOps": 0,
                    "IOMaximumBandwidth": 0
                },
                "GraphDriver": {
                    "Data": {
                        "LowerDir": "/var/lib/docker/overlay2/07cd3bfe2fc869a09a48fadab1                                                                                   cadff762703aa440f59b10bb82d501c5eba583-init/diff:/var/lib/docker/overlay2/224803                                                                                   382a77b4cadf0ab3f1a338e122005485bb4fc76bf0aa25e095efbd6d76/diff:/var/lib/docker/                                                                                   overlay2/2ede217a44f1a282d184e8f9fabad562f878bd5525fe56d0e235e882e5ba4b28/diff:/                                                                                   var/lib/docker/overlay2/ee278b42ef246c2c75514ff715ca24e5493e6e524a198e81ec060d36                                                                                   b0d9a1d0/diff:/var/lib/docker/overlay2/8e7a71867fcad7d6f77dc0d2f9c163ca569f2b2af                                                                                   92aee8ac1b87f189094adc7/diff:/var/lib/docker/overlay2/2f3169a6e06952f1c59cef5f48                                                                                   30b5bc1a9986e22446f942a8b39e2675557d16/diff:/var/lib/docker/overlay2/25ff21a0e06                                                                                   82f4f8d7595b342a171636b5a0ce64d2cdec6d1bbe19fdd05038e/diff:/var/lib/docker/overl                                                                                   ay2/8059282455f27755e306f9e9256dc881621e2ec190e8c6b52c5af6041f7ac0d2/diff:/var/l                                                                                   ib/docker/overlay2/7e0fef03e40cebb8991226beb8ee2834de6ac4249db167dd7f25d2d85626a                                                                                   2ca/diff:/var/lib/docker/overlay2/bde61bcf93d1eccc0b7fd02b05c7e86003254b8fef9c04                                                                                   a1cf7973a9349f496c/diff:/var/lib/docker/overlay2/8d6e89a64790f4a543d0e0b89d0cc5b                                                                                   a0214ffd43dacab2b29d6fd257d3b9c09/diff:/var/lib/docker/overlay2/7604252e3fbcfd2a                                                                                   7170ffa68b46c7bab1a1c02eab273baf8023a8be7e025712/diff:/var/lib/docker/overlay2/7                                                                                   513bbb9c0278d7e847c517385a7510cdff826e0f084c3bcf76e726e3daad2d1/diff",
                        "MergedDir": "/var/lib/docker/overlay2/07cd3bfe2fc869a09a48fadab                                                                                   1cadff762703aa440f59b10bb82d501c5eba583/merged",
                        "UpperDir": "/var/lib/docker/overlay2/07cd3bfe2fc869a09a48fadab1                                                                                   cadff762703aa440f59b10bb82d501c5eba583/diff",
                        "WorkDir": "/var/lib/docker/overlay2/07cd3bfe2fc869a09a48fadab1c                                                                                   adff762703aa440f59b10bb82d501c5eba583/work"
                    },
                    "Name": "overlay2"
                },
                "Mounts": [
                    {
                        "Type": "volume",
                        "Name": "c8a7d69305f7ffe288d50249e073e190e3cf74829204e8fcb0b267c                                                                                   ad4d21ebc",
                        "Source": "/var/lib/docker/volumes/c8a7d69305f7ffe288d50249e073e                                                                                   190e3cf74829204e8fcb0b267cad4d21ebc/_data",
                        "Destination": "/var/edomi-backups",
                        "Driver": "local",
                        "Mode": "",
                        "RW": true,
                        "Propagation": ""
                    }
                ],
                "Config": {
                    "Hostname": "Z83-2",
                    "Domainname": "",
                    "User": "",
                    "AttachStdin": false,
                    "AttachStdout": false,
                    "AttachStderr": false,
                    "ExposedPorts": {
                        "22/tcp": {}
                    },
                    "Tty": false,
                    "OpenStdin": false,
                    "StdinOnce": false,
                    "Env": [
                        "KNXGATEWAY=KNXROUTER",
                        "KNXACTIVE=true",
                        "HOSTIP=192.168.178.70",
                        "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/b                                                                                   in",
                        "EDOMI_VERSION=EDOMI-Beta_152.zip",
                        "EDOMI_ZIP=/tmp/edomi.zip",
                        "EDOMI_INSTALL_PATH=/tmp/edomi/Install/",
                        "START_SCRIPT=/root/start.sh",
                        "ROOT_PASS=123456",
                        "EDOMI_BACKUP_DIR=/var/edomi-backups"
                    ],
                    "Cmd": [
                        "/root/start.sh"
                    ],
                    "ArgsEscaped": true,
                    "Image": "starwarsfan/edomi-docker:latest",
                    "Volumes": {
                        "/var/edomi-backups": {}
                    },
                    "WorkingDir": "",
                    "Entrypoint": null,
                    "OnBuild": null,
                    "Labels": {
                        "build-date": "2016-06-02",
                        "license": "GPLv2",
                        "name": "CentOS Base Image",
                        "vendor": "CentOS"
                    }
                },
                "NetworkSettings": {
                    "Bridge": "",
                    "SandboxID": "f074f4294416e852b10ce1fe31bfe7ae1f311ab27d9f2c0d1648d6                                                                                   87c1e9f5ec",
                    "HairpinMode": false,
                    "LinkLocalIPv6Address": "",
                    "LinkLocalIPv6PrefixLen": 0,
                    "Ports": {},
                    "SandboxKey": "/var/run/docker/netns/default",
                    "SecondaryIPAddresses": null,
                    "SecondaryIPv6Addresses": null,
                    "EndpointID": "",
                    "Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "IPAddress": "",
                    "IPPrefixLen": 0,
                    "IPv6Gateway": "",
                    "MacAddress": "",
                    "Networks": {
                        "host": {
                            "IPAMConfig": null,
                            "Links": null,
                            "Aliases": null,
                            "NetworkID": "519304a3e2669e4fde8c493492e7cab6fe234db8fde6f8                                                                                   f12e2607aaf5b6d7db",
                            "EndpointID": "d0677ccd02665b774725c5c87d2d45595fd5d3e0f54ff                                                                                   9417dd83d504abd49f4",
                            "Gateway": "",
                            "IPAddress": "",
                            "IPPrefixLen": 0,
                            "IPv6Gateway": "",
                            "GlobalIPv6Address": "",
                            "GlobalIPv6PrefixLen": 0,
                            "MacAddress": "",
                            "DriverOpts": null
                        }
                    }
                }
            }
        ]
        Gestartet ist der Docker so:
        Code:
        docker run --name edomi --net=host --restart=on-failure -p 22222:22 -e KNXGATEWAY=KNXROUTER -e KNXACTIVE=true -e HOSTIP=192.168.178.70 -d starwarsfan/edomi-docker:latest

        Kommentar


          #34
          Hi,

          das geht aktuell leider gar nicht, da sich durch die Start-Option --net=host der ssh-Dienst im Container nicht starten lässt, weil der entsprechende Port schon vom Host belegt ist. Wenn Du in den Container hinein willst, dann geht das im Moment nur via
          Code:
          docker exec -i -t edomi /bin/bash
          Ich bin nach wie vor nicht erfolgreich damit, den Websocket sauber in den Container hinein zu bringen. Aus diesem Grund bin ich dabei, eine simple Websocket-Demo-App zu dockerisieren, um zu sehen, ob's an Docker oder Edomi liegt...
          Kind regards,
          Yves

          Kommentar


            #35
            Wo liegen den eigentlich die Vorteile zu anderen Virtualisieungen (wie z.B. Proxmox)?

            Kommentar


              #36
              So als erstes mal: docker erzeugt bedeutend weniger Overhead weil keine Hardware-Schicht dazwischen liegt...

              Kommentar


                #37
                Wäre es vielleicht möglich, die benutzen Ports (HTTP, etc) zu als Enviroment Variable dynamisch zu gestalten? Sollte doch eine recht simple Sache sein, die httpd.conf beim Starten dynamisch zu konfigurieren. Würde auch die Problematik mit der Diskstation vermeiden.

                Kommentar


                  #38
                  Genau das habe ich bei meinem lokalem Docker gemacht, HTTP auf 81 HTTPS auf 444, funktioniert zusammen mit meiner haupt-Aapache Installation ohne Probleme.

                  Grüße
                  Thomas

                  Kommentar


                    #39
                    Mit dem Container von mir oder dem von pfischi?
                    Kind regards,
                    Yves

                    Kommentar


                      #40
                      @kobza: hast du eine Syno?
                      welche sonstigen Porst hast du noch verbogen?

                      ich habe zwar auch in dieser Richtung herumgetestet - aber erfolglos :-(
                      EPIX
                      ...und möge der Saft mit euch sein...
                      Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

                      Kommentar


                        #41
                        Ich habe das Dockerfile vom pfischi als Startpunkt genommen (weil ich schon länger damit Optionen probiert habe)
                        Dort habe ich die neuste EDOMI Version und eben die Ports 81/444 reingebastelt (Dockerfile und install.sh angepasst)

                        Gruß
                        Thomas

                        Kommentar


                          #42
                          Und? Magste den Dockerfile Teilen?

                          Kommentar


                            #43
                            Klar :-) hier

                            Dockerfile , hier https und mysql (im extra File) Ports geändert:
                            Code:
                            FROM centos:6.8
                            RUN yum update -y && yum upgrade -y
                            RUN yum -y install \
                                    nano \
                                    emacs \
                                    wget \
                                    unzip \
                                    php-devel \
                                    mysql \
                                    mysql-server \
                                    vsftpd \
                                    httpd \
                                    tar \
                                    php-gd \
                                    php-mysql \
                                    php-pear \
                                    php-soap \
                                    ntp \
                                    openssh-server \
                                    mod_ssl
                            
                            ENV EDOMI_TMP_PATH /tmp
                            ENV EDOMI_ZIP $EDOMI_TMP_PATH/edomi.zip
                            ENV EDOMI_INSTALL_PATH $EDOMI_TMP_PATH/edomi/Install/
                            COPY bin/edomi_152.zip $EDOMI_ZIP
                            RUN unzip -q $EDOMI_ZIP -d $EDOMI_TMP_PATH
                            COPY bin/install.sh $EDOMI_INSTALL_PATH
                            RUN cd $EDOMI_INSTALL_PATH && ./install.sh
                            
                            # change http port to 81 -> done in install.sh
                            # COPY config/httpd.conf /etc/httpd/conf/
                            
                            # change mysql port to 3360
                            COPY config/my.cnf /etc/
                            
                            # set root passwd
                            RUN echo -e "admin\nadmin" | (passwd --stdin root)
                            
                            # enable ssl for edomi
                            RUN sed -i -e "\$aLoadModule log_config_module modules/mod_log_config.so" /etc/httpd/conf.d/ssl.conf
                            RUN sed -i -e "\$aLoadModule setenvif_module modules/mod_setenvif.so" /etc/httpd/conf.d/ssl.conf
                            # change port to 444
                            RUN sed -i -e "s#443#444#g" /etc/httpd/conf.d/ssl.conf
                            
                            # copy entrypoint script
                            ENV START_SCRIPT /root/start.sh
                            COPY bin/start.sh $START_SCRIPT
                            RUN chmod +x $START_SCRIPT
                            CMD ["/root/start.sh"]
                            install.sh (hier nur Apache config), http port auf 81
                            Code:
                                    ...
                                    # Apache
                                    cp config/welcome.conf /etc/httpd/conf.d/
                                    cp config/httpd.conf /etc/httpd/conf/
                                    sed -i -e "s#===INSTALL-HTTP-ROOT===#$MAIN_PATH/www#g" /etc/httpd/conf/httpd.conf
                                    # change port to 81
                                    sed -i -e "s#80#81#g" /etc/httpd/conf/httpd.conf
                                    ...
                            Gruß
                            Thomas

                            Kommentar


                              #44
                              Sehr seltsam! Und das funktioniert mit Edomi 1.52 aufwärts? Auf welchem Hostsystem? So ziemlich genau so hatte ich es am Anfang auch aber keine Chance die Websocket-Verbindung aufzubauen.

                              Hast Du bitte noch ein paar mehr Details zum "Drumherum" und den genauen Aufruf?
                              Kind regards,
                              Yves

                              Kommentar


                                #45
                                Ja, habe jetzt auf EDOMI 1.53 upgadated. Host system ist debian stretch 9.1. (leif aber auch mit "jessie")
                                Wie gesagt als Startpunkt das"pfischi" GIT genommen und die Änderungen wie oben lokal eingebaut.

                                Docker build im lokalem Docker Dir:
                                Code:
                                docker build -t "edomi" .
                                Dann start mit
                                Code:
                                docker run --restart=always --name edomi -d --net=host -e KNXGATEWAY=192.168.178.xx -e KNXACTIVE=true -e HOSTIP=192.168.178.xx edomi
                                Zuletzt geändert von kobza; 17.10.2017, 20:04.

                                Kommentar

                                Lädt...
                                X