Public | Automated Build

Last pushed: 2 years ago
Short Description
Toolchain to compile NodeMCU for ESP8266 in docker.
Full Description

Docker NodeMCU Builder

Toolchain to compile NodeMCU for ESP8266 in docker.

This assumes you are the user with UID 1000 (default for the first user) on your system. Compiled files etc will be created with this uid.


Install docker

Build this on your own

Check out this repo, build the container and run it:

git clone
docker build -t nodemcu-builder docker-nodemcu-builder
cd <nodemcu-firmware>
docker run --rm -ti -v `pwd`:/opt/nodemcu-firmware nodemcu-builder

Use pre-built docker hub version

In your nodemcu-firmware directory run:

docker run --rm -ti -v `pwd`:/opt/nodemcu-firmware asmaps/nodemcu-builder


make is the default command. If you want to run e.g. make clean just add it at the end:

docker run --rm -ti -v `pwd`:/opt/nodemcu-firmware asmaps/nodemcu-builder make clean


For flashing the container needs access to the ttyUSB device and it has to be run as root:

docker run --rm -ti --device=/dev/ttyUSB0:/dev/ttyUSB0 -v `pwd`:/opt/nodemcu-firmware -u="root" asmaps/nodemcu-builder make flash


Thanks to esp-open-sdk which this image highly depends on.

And all others that are not listed here

Docker Pull Command
Source Repository

Comments (2)
2 years ago

Actually I was looking at the wrong file, I didn't realise the build products were in bin/ (due to .gitignore !!)

Can I suggest you also install srecord so your container can make a single file like the nodemcu firmware Travis build?

srec_cat -output ${file_name_float} -binary 0x00000.bin -binary -fill 0xff 0x00000 0x10000 0x10000.bin -binary -offset 0x10000
2 years ago

How do I turn off unwanted modules?

I already edited app/include/user_modules.h and changed unwanted modules to undef, but it seems they are all still built and linked.

Consequently my image is 1.6MB compared to 400K from the frightanic cloud nodemcu builder service.