github.com/google/syzkaller@v0.0.0-20240517125934-c0f1611a36d6/tools/docker/README.md (about) 1 # Docker images 2 3 We provide a set of Docker images that provide dev environment suitable for syzkaller development/testing. 4 These images are used by CI, but can also be used for [local development](/docs/contributing.md#using-syz-env). 5 6 - [env](/tools/docker/env/Dockerfile) includes Go/fuchsia/netbsd toolchains, gcloud sdk, C/C++ cross-compilers, make, git and other essential tools. 7 - [old-env](/tools/docker/old-env/Dockerfile) provides essential tools but based on an older disto (ubuntu:16.04). 8 9 These images are available as `gcr.io/syzkaller/{env,old-env}`, respectively. 10 11 To download and run locally: 12 ``` 13 docker pull gcr.io/syzkaller/env 14 docker run -it gcr.io/syzkaller/env 15 ``` 16 17 To build and push a new version: 18 ``` 19 docker build -t gcr.io/syzkaller/env tools/docker/env 20 gcloud auth login && gcloud auth configure-docker 21 docker push gcr.io/syzkaller/env 22 ``` 23 24 [DEPRECATED] Github packages are not supported (if you can't access gcr.io, please contact us) 25 ``` 26 docker tag gcr.io/syzkaller/env docker.pkg.github.com/google/syzkaller/env 27 docker login https://docker.pkg.github.com 28 docker push docker.pkg.github.com/google/syzkaller/env 29 ``` 30 31 ## Syzbot image 32 33 The syzbot image supports two architectures (arm64, amd64), so we need to build it with care. 34 35 The example below uses [the standard Docker functionality](https://docs.docker.com/build/building/multi-platform/) to build a 36 multi-arch image in a way that allows to distribute it under one tag names. 37 38 ```bash 39 docker run --privileged --rm tonistiigi/binfmt --install all 40 docker buildx create --name mybuilder --driver docker-container --bootstrap 41 docker buildx use mybuilder 42 gcloud auth login && gcloud auth configure-docker 43 docker buildx build --platform linux/amd64,linux/arm64 -t gcr.io/syzkaller/syzbot tools/docker/syzbot --push 44 ```