Closed JuergenKir closed 1 year ago
Zu 1) Grundsätzlich lässt sich Docker parallel zu bereits bestehenden Anwendungen betreiben. Da sehe ich keine Probleme, auch wenn die limitierenden Faktoren natürlich RAM (in erster Linie) und möglicherweise auch CPU-Power sind. Hier mal der Speicherbedarf der Docker-Container, die für SOLECTRUS zusammen kommen, als reine Momentaufnahme (per docker stats
) auf meinem Raspi 8GB:
solectrus-app-1 128.3MiB
solectrus-forecast-collector-1 27.18MiB
solectrus-senec-collector-1 38.43MiB
solectrus-influxdb-1 338.8MiB
solectrus-redis-1 11.05MiB
solectrus-db-1 38.09MiB
Zusammen also etwa 600 MB. Ich weiß nicht, wie viel RAM Deine bestehenden Anwendungen benötigen. Wenn free -h
genügend freien Platz anzeigt, wäre es einen Versuch wert.
Zu 2) SOLECTRUS verwendet (zwingend) InfluxDB 2, was sich grundlegend von Version 1 unterscheidet. Aber auch das ist kein Problem, Du kannst InfluxDBv1 als native installierte Anwendung weiter betreiben und parallel dazu InfluxDBv2 in einem Docker-Container. Bei Docker-Containern, die irgendwas speichern sollen, also z.B. Datenbanken, legt man per Volume den Ordner fest, wo die Daten abgelegt werden soll. Solange InfluxDB2 im Docker-Container ein Volume verwendet, das einen eigenen Ordner hat, gibt es keine Probleme mit der bereits bestehenden Installation.
Zu 3) Der Port von SOLECTRUS kann verändert werden, 3000
ist nur die Standardvorgabe. Die Einstellung ist per Environment-Variable zu definieren. Um beispielsweise auf den Port 4000
zu wechseln, ist die docker-compose.yml
folgendermaßen anzupassen:
services:
app:
ports:
- 4000:4000
environment:
- PORT=4000
Viel Erfolg beim Installieren! :-)
Vielen Dank für die schnelle Hilfe. Nach Ausführen des "docker compose up" klappt leider die Erstellung der Container nicht. Ich erhalte folgenden Fehler: no matching manifest for linux/arm/v8 in the manifest list entries Gibt es dafür eine Erklärung bzw. Abhilfe? Vielen Dank :)
Hm, das Problem hatten wir schon mal, siehe #22. Die Lösung des betroffenen Users war, seinen Raspi komplett neu aufzusetzen, was für Dich wohl eher nicht infrage kommt.
Das Docker-Image für SOLECTRUS wird für linux/arm64
bereitgestellt, nicht für linux/arm/v8
. Das würde ich gerne auch beibehalten. Mir ist nicht ganz klar, warum Dein Raspi linux/arm/v8
erfordert.
Könntest Du bitte den Output von dpkg --print-architecture
sowie uname -a
posten?
Ich hatte das Pi OS ursprünglich als 32 bit-Version installiert und später den Kernel auf 64 bit geändert. "uname -a " zeigt zumindest das gewünschte Ergebnis. Aber es halt wohl doch kein vollständiges 64 bit-System? Vielleicht liegt es daran?
Docker info spuckt folgendes aus: _pi@iobroker:~ $ docker info Client: Context: default Debug Mode: false Plugins: buildx: Docker Buildx (Docker Inc.) Version: v0.10.4 Path: /usr/libexec/docker/cli-plugins/docker-buildx compose: Docker Compose (Docker Inc.) Version: v2.17.2 Path: /usr/libexec/docker/cli-plugins/docker-compose
Server: Containers: 1 Running: 1 Paused: 0 Stopped: 0 Images: 2 Server Version: 23.0.3 Storage Driver: overlay2 Backing Filesystem: extfs Supports d_type: true Using metacopy: false Native Overlay Diff: true userxattr: false Logging Driver: json-file Cgroup Driver: systemd Cgroup Version: 2 Plugins: Volume: local Network: bridge host ipvlan macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog Swarm: inactive Runtimes: io.containerd.runc.v2 runc Default Runtime: runc Init Binary: docker-init containerd version: 2806fc1057397dbaeefbea0e4e17bddfbd388f38 runc version: v1.1.5-0-gf19387a init version: de40ad0 Security Options: seccomp Profile: builtin cgroupns Kernel Version: 6.1.21-v8+ Operating System: Raspbian GNU/Linux 11 (bullseye) OSType: linux Architecture: aarch64 CPUs: 4 Total Memory: 3.704GiB Name: iobroker ID: bf920985-a5bd-480f-a5ed-0cb47e9d10f1 Docker Root Dir: /var/lib/docker Debug Mode: false Registry: https://index.docker.io/v1/ Experimental: false Insecure Registries: 127.0.0.0/8 Live Restore Enabled: false
WARNING: No memory limit support WARNING: No swap limit support_
Die entscheidende Stelle ist das armhf
. Es handelt sich also um einen 64bit Kernel, aber mit 32bit Userland. Das ergibt sich, wenn man nachträglich in der /boot/config.txt
den Eintrag arm_64bit=1
vornimmt. Ich habe meine Anleitung angepasst.
Nach meinem Kenntnisstand gibt es leider keinen (einfachen) Weg, voll auf 64bit umzustellen. Es bleibt somit nur die Möglichkeit, Deinen Raspi komplett neu aufsetzen. Das ist zwar fix gemacht (mit dem Raspberry Pi Imager), aber die bestehenden Anwendungen wären dann ebenfalls neu einzurichten.
Den Raspi platt machen für das 64bit OS möchte ich aktuell (noch) nicht und habe eine neue Alternative gesucht: Ich habe einen Proxmox-Server aufgesetzt und dort einen lxc-Container mit debian-11 Template erstellt. Dann funktioniert die Anleitung für für die Synology NAS mit minimalen Änderungen. Bingo - Solectrus läuft !!!
@JuergenKir Großartig! :)
Auf meinem Raspberry pi 4 - 4GB (aarch64) laufen u.a. iobroker, InfluxDB (1.8.10) und Grafana ohne Docker Container. Ich möchte Solectrus zusätzlich drauf installieren und habe 3 Fragen dazu:
Danke im Voraus.