Skip to content

Multi-architecture build environment for any software.

Notifications You must be signed in to change notification settings

zhaowcheng/xbuilder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

本项目旨在通过 Docker + Nix + binfmtx86_64 架构上生成各种软件的 多架构 编译环境,具体支持的软件请查看 flake.nix 中的 devShells 属性。

首次使用先执行如下命令:

# 创建 binfmt,用于 x86_64 上运行其他架构的软件。
$ docker run --name binfmt --restart=always --privileged tonistiigi/binfmt --install all

# 创建便于容器间互相使用名称访问的网路。
$ docker network create xbuilder

# 创建 nix 缓存服务(建议定期执行 docker commit nixcache nixcache 保存缓存容器)。
$ docker build -t nixcache -f Dockerfile.nixcache .
$ docker run -d --name nixcache --network xbuilder --restart=always nixcache

然后在当前目录执行如下命令构建编译环境(每当编译环境有变更后也只需从这里开始运行):

$ DOCKER_BUILDKIT=0 docker build --network xbuilder -t xbuilder -f Dockerfile.xbuilder .

构建成功后使用如下命令运行编译环境:

$ docker run -it --network xbuilder --rm --privileged xbuilder bash

当第一次构建完成编译环境后或者后续有新的构建时,建议执行如下命令上传缓存(密码请查看 Dockerfile.nixcache):

$ nix copy --all --to ssh://root@nixcache 

About

Multi-architecture build environment for any software.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages