mirror of
https://github.com/openziti/zrok.git
synced 2025-01-24 23:09:32 +01:00
29 lines
1.1 KiB
Markdown
29 lines
1.1 KiB
Markdown
|
|
# 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`.
|
|
|
|
```bash
|
|
# 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/`
|
|
|
|
```bash
|
|
# 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/`.
|