iPXE discussion forum
Docker build environment - Printable Version

+- iPXE discussion forum (https://forum.ipxe.org)
+-- Forum: iPXE user forums (/forumdisplay.php?fid=1)
+--- Forum: General (/forumdisplay.php?fid=2)
+--- Thread: Docker build environment (/showthread.php?tid=12669)



Docker build environment - Madic - 2018-08-02 22:01

Hello,

I've created a docker based build envirnment for iPXE. In the past I often had the problem that I've forgotten the requirements to build iPXE.
Of course I can find them in the documentation. But I'm not (re)building iPXE that often so I created a dockerized build environment for iPXE.
It creates a docker image with hopefully all requirements and builds iPXE with make all.

So with only a few commands I can build iPXE without (re)thinking about the build process.

Everything is on github:
https://github.com/Madic-/ipxe-docker-compile

Hopefully someone finds that usefull. PRs or Issues welcome.

Kind Regards,
Madic


RE: Docker build environment - NiKiZe - 2018-08-04 19:23

Nice!
Hopefully it is useful for some.

Remember tho that often different build targets is needed:
* building for efi
* building different drivers
* embed script
* add DEBUG=
Maybe something to consider support for.
I have myself tried to build a iPXE bootable iPXE build environment, but getting everything needed into a small-ish image is not always easy.


RE: Docker build environment - Madic - 2018-08-04 20:53

Thank you for your comment.

* building for efi:
You're right. I've changed the build command from "make all" to "make everything".

* building different drivers
At the moment I don't understand the need for this but need to read more the documentation for this.

* embed script
You mean embedding in the binary? Like documented here http://ipxe.org/embed#embedding_within_the_ipxe_binary ?
I will consider this. Maybe implement it in a day or two.

* add DEBUG
The log of the last build is saved under ./compile/logs/build.log
Or do you mean something else?


RE: Docker build environment - NiKiZe - 2018-08-04 21:08

All I'm talking about is how to modify the make cmd line
See http://ipxe.org/appnote/buildtargets for different buildtargets - for example they are need for supporting usb nics with ecm--ncm--axge as one example.
make everything just in most cases just slow without benefit - since you most likely only want one or 2 binaries in the same build

yes EMBED= for scripts

DEBUG= as seen at http://ipxe.org/download#debug_builds

another tip, use make -j4 or even make -j8 for parallel builds which considerably speeds up things.


RE: Docker build environment - Madic - 2018-08-05 00:44

I've added three environment variables.
One for the build command, one for a path to a script that should be embedded and one for DEBUG objects.
Also make now compiles with -j4 by default. Though you can change it via the environment variable.

The environment variables ENV_EMBEDD and ENV_DEBUG aren't much tested. In theory they should work.