Fertige Container-Images zur Entwicklung
Support
Bei Fragen oder Unklarheiten hilft der Support weiter.
Installation
Datenverzeichnis anlegen
Es wird ein Datenverzeichnis auf dem Host benötigt, in dem die Quelltext von ct-Bot und ct-Sim sowie die Einstellungen des Eclipse-Workspaces aufbewahrt werden. Im Folgenden wird dafür ein Unterverzeichnis ctbot-data
angelegt und verwendet. Dort werden auch die Start-Skripte abgelegt, so dass der lokale Pfad zu diesem Datenverzeichnis jeweils einfach .
ist.
mkdir ctbot-data && cd ctbot-data
Hat man eigenen Änderungen am Code vorgenommen, sollte man das Datenverzeichnis (hier ctbot-data
) in sein Backup einschließen. Die komplette Installation inkl. IDE und Toolchains hingegen liegt im Container-Image und kann jederzeit wieder (im Ursprungszustand) heruntergeladen werden.
Eclipse-Entwicklungsumgebung
wget https://github.com/tsandmann/ctbot-container/raw/master/run_eclipse.sh
chmod +x run_eclipse.sh
./run_eclipse.sh PATH_TO_DATADIR [VERSION]
# ./run_eclipse.sh .
Als VERSION
kann explizit eine Eclipse-Version angegben werden wie beispielsweise 2023-09
oder auch latest
, um die neueste (geladene) Version zu starten:
./run_eclipse.sh . latest
Die Größe dieses Images beträgt ca. 1,6 GB.
Wurde Eclipse (oder die Eclipse-Einstellungen) “kaputtgespielt”, kann die ganze Umgebung problemlos wieder auf die Ausgangswerte zurückgesetzt werden, siehe Eclipse-Workspace bereinigen.
Eclipse-Entwicklungsumgebung inkl. Raspberry-Pi-Toolchain
wget https://github.com/tsandmann/ctbot-container/raw/master/run_eclipse-rpi.sh
chmod +x run_eclipse-rpi.sh
./run_eclipse-rpi.sh PATH_TO_DATADIR [VERSION]
# ./run_eclipse-rpi.sh .
Diese Variante wird nur benötigt, wenn der ct-Bot eine Raspberry-Pi-Erweiterung hat. Durch die zusätzliche Toolchain für den Raspberry Pi ist das Image ca. 2,7 GB groß.
Standalone ct-Sim
Die ct-Sim-Images sind nützlich, falls nur der ct-Sim benötigt wird (z.B. wenn die Tools für die ct-Bot-Programmierung eh schon vorhanden sind), die Installation einer kompatiblen Java-Laufzeitumgebung aber vermieden werden soll oder nicht möglich ist. Die Größe dieser Images beträgt knapp 750 MB.
Release-Version
wget https://github.com/tsandmann/ctbot-container/raw/master/run_ctsim.sh
chmod +x run_ctsim.sh
./run_ctsim.sh PATH_TO_DATADIR [VERSION]
# ./run_ctsim.sh .
Als VERSION
kann explizit eine ct-Sim-Version angegben werden wie beispielsweise 2.29.2
oder auch latest
, um die neueste (geladene) Version zu starten:
./run_ctsim.sh . latest
Entwicklungsversion
wget https://github.com/tsandmann/ctbot-container/raw/master/run_ctsim-dev.sh
chmod +x run_ctsim-dev.sh
./run_ctsim-dev.sh PATH_TO_DATADIR
# ./run_ctsim-dev.sh .
Verwendung
Ins Datenverzeichnis wechseln
cd ctbot-data
Eclipse-Entwicklungsumgebung starten
./run_eclipse.sh PATH_TO_DATADIR [VERSION]
# ./run_eclipse.sh .
oder
./run_eclipse-rpi.sh PATH_TO_DATADIR [VERSION]
# ./run_eclipse-rpi.sh .
Als VERSION
kann explizit eine Eclipse-Version angegben werden wie beispielsweise 2023-09
oder auch latest
, um die neueste (geladene) Version zu starten:
./run_eclipse.sh . latest
Übertragen der Firmware auf einen realen ct-Bot
Um die Firmware auf einen realen ct-Bot über USB übertragen zu können, muss der Programmieradapter im Container verfügbar gemacht werden. Hierzu muss ein weiterer Parameter angegeben werden, der den Pfad zum Adapter enthält. Der Pfad ist dabei der Teil, der unter Übertragen der Firmware auf den ct-Bot hinter -P
angegeben ist:
- z.B. für Bootloader oder mySmartUSB:
./run_eclipse.sh . latest --device=/dev/ttyUSB0
Da ein weiterer Parameter übergeben wird, muss die Version des Images (oder latest) immer explizit mit angegeben werden.
Eclipse-Workspace bereinigen
Wurde Eclipse (oder die Eclipse-Einstellungen) "kaputtgespielt", kann die ganze Umgebung wieder auf die Ausgangswerte zurückgesetzt werden (im Normalbetrieb nicht erforderlich):
Alle eigenen Eclipse-Einstellungen werden dabei gelöscht! Änderungen am Sourcecode der Projekte bleiben natürlich erhalten.
rm -rf .metadata
Standalone ct-Sim starten
./run_ctsim.sh PATH_TO_DATADIR [VERSION]
# ./run_ctsim.sh .
Als VERSION
kann explizit eine ct-Sim-Version angegben werden wie beispielsweise 2.29.2
oder auch latest
, um die neueste (geladene) Version zu starten:
./run_ctsim.sh . latest
Weitere Features für Fortgeschrittene
Eigene Parameter
Hängt man an das Start-Skript weitere Parameter an, werden diese direkt an den run
-Aufruf des Containers weitergereicht. So lassen sich z.B. weitere Verzeichnisse in den Container mounten, Programmier- bzw. USB-2-Bot-Adapter im Container verfügbar machen oder Ports forwarden. Dabei muss die Version des Images immer explizit mit angeben werden.
Beispiele:
- USB-2-Bot-Adapter verwenden:
./run_eclipse.sh . latest --device=/dev/ttyUSB0
- ct-Sim-Port forwarden:
./run_eclipse.sh . latest -p 10001:10001
Benutzer im Container
Im Container wird der Benutzer developer
mit der UID 1000
verwendet, das Passwort ist auf ct-bot
gesetzt. Der Benutzer ist Mitglied der Gruppen dialout
und sudo
.
Persistente Container
Die Start-Skripte starten die Container mit der Option --rm
, so dass sie nach dem Beenden automatisch entfernt werden. Somit erhält man bei jedem Start ein "frisches" System, Änderungen gelten nur für die Laufzeit des Containers. Entfernt man die --rm
-Option im Start-Skript, erhält man einen persistenten Container, in man Änderungen auch in das Image committen kann. Dabei bietet es sich an, mit --name
dem Container einen Namen zuzuweisen. Für weitere Informationen siehe Podman-Dokumentation bzw. Docker-Dokumentation.
Container-Images aktualisieren
podman pull IMAGE_REPO:VERSION
# podman pull docker.io/tsandmann/ctbot-eclipse:2023-09
oder
docker pull IMAGE_REPO:VERSION
# docker pull docker.io/tsandmann/ctbot-eclipse:2023-09
Um die neueste verfügbare Version zu laden:
podman pull IMAGE_REPO:latest
# podman pull docker.io/tsandmann/ctbot-eclipse:latest
oder
docker pull IMAGE_REPO:latest
# docker pull docker.io/tsandmann/ctbot-eclipse:latest
Alte Container-Images aufräumen
podman image prune
oder
docker image prune
Container-Images bauen
git clone https://github.com/tsandmann/ctbot-container.git
cd ctbot-container
./build_eclipse.sh VERSION
# ./build_eclipse.sh 2023-09
./build_eclipse-rpi.sh VERSION
# ./build_eclipse-rpi.sh 2023-09
./build_ctsim.sh VERSION
# ./build_ctsim.sh 2.29.2
Quellen
-
Dockerfiles, Build- und Start-Skripte im Github-Repository
-
Container-Images in der Docker Hub Registry
Autor: Timo Sandmann | Stand: 15.10.2023