Commit 1649e54a authored by Bernhard Heinloth's avatar Bernhard Heinloth
Browse files

Support Docker

parent 0b7e65b1
FROM debian:stable
ENV DEBIAN_FRONTEND noninteractive
LABEL org.label-schema.schema-version="1.0"
LABEL org.label-schema.name="timecube"
LABEL org.label-schema.description="Environment for i4 timecube"
LABEL org.label-schema.url="https://sys.cs.fau.de/"
LABEL org.label-schema.vcs-url="https://gitlab.cs.fau.de/i4/timecube"
LABEL org.label-schema.vendor="Friedrich-Alexander-Universität Erlangen-Nürnberg / Lehrstuhl für Informatik 4"
ENV IDF_PATH="/timecube/firmware/esp-idf/"
ENV PATH="${PATH}:/timecube/firmware/xtensa-esp32-elf/bin"
RUN ln -fs /usr/share/zoneinfo/Europe/Berlin /etc/localtime \
&& export DEBIAN_FRONTEND=noninteractive \
&& apt-get update -qq \
&& apt-get install -y -qq eatmydata \
&& eatmydata apt-get install -y -qq make cmake git wget flex bison gperf python3 python3-pip python3-setuptools python-is-python3 libffi-dev libssl-dev nginx php php-fpm php-pgsql \
&& git clone --recursive https://gitlab.cs.fau.de/i4/timecube.git /timecube \
&& git clone --depth=1 --recursive --branch v3.3.6 https://github.com/espressif/esp-idf.git /timecube/firmware/esp-idf \
&& pip3 install -r /timecube/firmware/esp-idf/requirements.txt \
&& sed -i '/^#include <protocomm_ble.h>$/d' /timecube/firmware/esp-idf/components/wifi_provisioning/include/wifi_provisioning/scheme_ble.h \
&& wget -qO- https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-97-gc752ad5-5.2.0.tar.gz | tar xvz -C /timecube/firmware \
&& mkdir -p /timecube/firmware/build
WORKDIR /timecube/firmware/build
CMD ["/bin/sh", "-c" , "cmake .. && make && make flash"]
......@@ -86,3 +86,26 @@ Hat man mehr als einen ESP32 angeschlossen, dann kann/muss man mittel Umgebungsv
`ESPPORT=/dev/ttyUSB5 make flash`
Docker (mit ESP IDF)
--------------------
Wer weder *Arduino* noch das *Espressif IoT Development Framework* installieren will, kann auch alternativ Docker verwenden.
### Bauen des Docker Abbildes (optional)
Wer das Docker Image selbst bauen will, kann dies mittels
docker build -t inf4/timecube .
im Hauptverzeichnis des Repos machen.
Alternativ ist es aber auch fertig auf [Docker Hub](https://hub.docker.com/r/inf4/timecube/) verfügbar und wird im nachfolgenden Schritt automatisch geladen.
### Bauen der Firmware und Flashen des Zeitwürfels
Auch hier muss zuerst eine Konfiguration (im Beispiel `config.h` im aktuellen Verzeichnis) erstellt werden,
wozu die Vorlage im Repo unter `firmware/main/example-config.h` verwendet werden kann.
docker run --rm -it -v $(pwd)/config.h:/timecube/firmware/main/config.h --device=/dev/ttyUSB0 inf4/timecube
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment