This repository produces a fully bootstrapped (using [Stageˣ]) base toolchain with the following components:
- busybox shell
- binutils
- GCC
- Linux headers
- musl libc
- GNU Make
- Go
Currently, a fork of [Stageˣ] is used to provide multiplatform support.
This toolchain should be capable of building all parts of Talos Linux without relying on tools other than image build tools.
The development of this toolchain depends on Docker 19.03.0 or greater and bldr.
The toolchain can be built for different architectures (e.g. x86_64, aarch64, etc.).
To do this you will need to setup the proper docker context for the architecture you intend on building for.
For example, to setup the build for aarch64 (arm64):
docker context create arm64 \
--description "An arm64 builder" \
--docker "host=tcp://$IP:2376,ca=${HOME}/.docker/client/ca.pem,cert=${HOME}/.docker/client/cert.pem,key=${HOME}/.docker/client/key.pem"
docker buildx create \
--use \
--name arm64-builder \
arm64Note: You can run the above steps against an
x86_64machine, substitutingarm64withamd64.
Then, to build:
make USERNAME=${DOCKER_HUB_USERNAME} PLATFORM=linux/arm64 PUSH=trueNote: You can use
PLATFORM=linux/amd64,linux/arm64if you have configureddockerwith andamd64andarm64contexts.