Building ESP32 firmware with Espressif's IDF Docker image
If you're only occasionally building ESP32 firmware with Espressif's IoT Development Framework (ESP-IDF), your current build probably fails because the installation from last time is outdated. Then you have to reinstall the newest version of the framework and its dependencies, and you probably still encounter a dependency issue. If it finally works and you have successfully built your firmware, your excitement makes up for the frustrating experience, until the next time you want to build some other ESP32 firmware, and the process repeats.
But there's another way: use the IDF Docker image. It contains ESP-IDF, all the required Python packages, and all build tools such as CMake, make, ninja, and cross-compiler toolchains. In short: a ready-to-use IDF build system.
Building ESP32 firmware with CMake in the container is as easy as:
This mounts the current directory on the host ($PWD
) as the directory /project
in the container and runs the command idf.py build
on the code. After the build is finished, you can find your firmware in the current directory.
The same works if the project is using make
for its build:
You can also use the container interactively.