zrok/docker/images/cross-build
2024-11-05 14:18:38 -05:00
..
Dockerfile reduce Docker image sizes 2024-11-05 14:18:38 -05:00
linux-build.sh switch 32bit release to armhf dynamically linked 2024-07-25 13:54:05 -04:00
README.md switch 32bit release to armhf dynamically linked 2024-07-25 13:54:05 -04:00

Cross-build Container for Building the Linux Executables for this zrok Project

Running this container produces one snapshot executable for zrok from the current checkout, even if dirty. Platform choices are: amd64, arm64, arm (the arm/v7 "armhf" ABI target), and armel (the arm/v7 "armel" ABI). You may specify the target architecture as a parameter to the docker run command.

Build the Container Image

You only need to build the container image once unless you change the Dockerfile or ./linux-build.sh.

# build a container image named "zrok-builder"
docker buildx build -t zrok-builder ./docker/images/cross-build --load;

Run the Container to Build Executables for the Desired Architectures

Executing the following docker run command will:

  1. Mount the top-level of this repo on the container's /mnt
  2. Run linux-build.sh ${@} inside the container
  3. Deposit built executable in ./dist/
# cross-build for arm64/aarch64 architecture on Linux
docker run --user "${UID}" --rm --volume=${HOME}/.cache/go-build:/usr/share/go --volume "${PWD}:/mnt" zrok-builder arm64

You will find the built artifacts in ./dist/.