diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..a71571245c92274074a97e961c66d763e2e7e677
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,29 @@
+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"]
diff --git a/INSTALL.md b/INSTALL.md
index 97dd1d667850994095edad657221fa6dd7827f61..0f7e2b50ef6c306efba02377ebda2a7379665e47 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -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