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 \
arm64
Note: You can run the above steps against an
x86_64
machine, substitutingarm64
withamd64
.
Then, to build:
make USERNAME=${DOCKER_HUB_USERNAME} PLATFORM=linux/arm64 PUSH=true
Note: You can use
PLATFORM=linux/amd64,linux/arm64
if you have configureddocker
with andamd64
andarm64
context
s.