Docker image for (cross-)compiling stuff. Mainly used for Linux kernel and Buildroot images.
Clone the repository:
git clone https://github.com/0xor0ne/docker-x-builder
cd docker-x-builderBuild the docker image with:
./scripts/docker_build.shThe script also creates a new persistent volume called dxb-vol-<build_id>,
where build_id is a random 8 characters values generated the first time
docker_build.sh is called. The idea is that you can clone this repository
multiple times and each build will be associated with a different persistent
volume.
However, as shown later it is possible to start the container with any custum
created volume or without any volume at all.
For running the container interactively execute:
./scripts/docker_run_inter.shinside the container you can do all your "cross compilation work" (see the examples).
The first time the container is executed, the entrypoint script will copy the
Buidroot repository in ${HOME}/workspace/buildroot.
Note also that ${HOME}/workspace is the directory where the persistent volume
is mounted. Moreover, ${HOME}/shared is a directory shared with the host. By
default the root directory of docker-x-builder from the host is shared with
the contaier.
It is possible to set a custom persistent volume or a custom shared directory
(or both) by using the options --volume and --shared with the script
./scripts/docker_run_inter.sh.
For example, create a new volume with:
docker volume create --name myvolumeand then run:
./scripts/docker_run_inter.sh --volume myvolume --shared /tmpWith the previous command, the container will use the newly create volume
myvolume and the host will share the directory /tmp
For deleting the image, the volume and the container, run:
./scripts/docker_remove_all.shNOTE: This does not remove the content of workspace directory:
Also, it is possible to only remove the volume (dxb-vol-<build_id>) with:
./scripts/docker_remove_volume.shThe volume can be recreated with:
./scripts/docker_create_volume.sh