OctoPrint via Docker auf RaspberryPi4B installieren
| 3D-Druck Linux
Docker installieren
Zuerst brauchen wir unsere Container Software um virtuelle Images auf dem Pi laufen zu lassen. Nach längerem ausprobieren habe ich festgestellt das auf dem 4B Docker via der Anleitung für Debian zu installieren ist: https://docs.docker.com/engine/install/debian/
Hier kurz die Befehle zusammen gefasst:
# Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] download.docker.com/linux/debian \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update #Installieren der docker packages sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-compose #Verifizierung ob die Installation geklappt hat: sudo docker run hello-world
Wenn das alles geklappt hat gibt es noch paar Befehle nach der Installation:
sudo groupadd docker sudo usermod -aG docker $USER #Verifizieren ob docker ohne sudo klappt: docker run hello-world
Nun sollte Docker erfolgreich auf eurem Pi4B installiert sein und wir können weiter gehen zur Konfiguration.
OctoPrint installieren
Ich habe im /var Verzeichnis einen Ordner container erstellt um dort meine Docker Images zentral zu verwalten. In dem Verzeichnis checke ich dann das offizielle Repo von Octoprint mittels GIT aus => https://github.com/OctoPrint/octoprint-docker
Wir wechseln in das nun neu erstellte Verzeichnis und passen die docker-compose.yml an:
version: '2.4' services: octoprint: image: octoprint/octoprint restart: unless-stopped ports: - 3000:80 devices: # use `python -m serial.tools.miniterm` to see what the name is of the printer, this requires pyserial # USB0 ist die serielle Verbindung zum Drucker # video0 ist die angeshclossene Webcam # Diese Einträge sind für die jeweilige Installation anzupassen! - /dev/ttyUSB0:/dev/ttyUSB0 - /dev/video0:/dev/video0 volumes: - octoprint:/octoprint environment: - ENABLE_MJPG_STREAMER=true volumes: octoprint:
Nach der Konfiguration starten wir das Projekt mit folgendem Befehl:
docker-compose up -d
Zur Erklärung des Befehls (Credits an ChatGPT da die Doku und der Help Befehl wie immer nutzlos sind...)
docker-compose: Dies ist das Kommandozeilenprogramm, das Docker Compose-Befehle ausführt.
up: Dieser Befehl startet und erstellt alle Dienste, die in Ihrer docker-compose.yml Datei definiert sind. Wenn die Dienste bereits erstellt wurden, werden sie mit den neuesten Versionen neu gestartet.
-d: Dies ist eine Option, die für "detached mode" steht. Wenn Sie diesen Schalter verwenden, werden die Docker-Container im Hintergrund ausgeführt und geben die Kontrolle über das Terminal zurück. Ohne diesen Schalter würden die Logs der Container auf der Konsole ausgegeben und das Terminal wäre blockiert.
Wieso muss ich das Repo auschecken und nicht einfach docker run octoprint:octoprint ausführen?
Das habe ich mich gefragt, jedoch wird das Repo dann irgendwo ins Linux System installiert und die Konfiguration funktioniert auch nicht. Außerdem wird nach jedem neustart des Contaiers, der Container neu erzeugt, wodurch wir jedes mal aufs neue OctoPrint installieren dürfen. Deshalb müssen wir die Container auschecken umd docker-compose starten, so merkt sich dieser den Zustand und beim Neustart wird dann die Maschine einfach fortgesetzt anstatt neu aufgesetzt.
Gib mir Feedback!
Hab ich Blödsinn geschrieben oder etwas vergessen? Dann zögere nicht weiter und lass es mich sofort wissen indem du hier einen Kommentar hinterlässt!