# Docker images We provide a set of Docker images that provide dev environment suitable for syzkaller development/testing. These images are used by CI, but can also be used for [local development](/docs/contributing.md#using-syz-env). - [env](/tools/docker/env/Dockerfile) includes Go/fuchsia/netbsd toolchains, gcloud sdk, C/C++ cross-compilers, make, git and other essential tools. - [old-env](/tools/docker/old-env/Dockerfile) provides essential tools but based on an older disto (ubuntu:16.04). These images are available as `gcr.io/syzkaller/{env,old-env}`, respectively. To download and run locally: ``` docker pull gcr.io/syzkaller/env docker run -it gcr.io/syzkaller/env ``` To build and push a new version: ``` DOCKER_BUILDKIT=1 docker build -t gcr.io/syzkaller/env tools/docker/env gcloud auth login && gcloud auth configure-docker docker push gcr.io/syzkaller/env ``` [DEPRECATED] Github packages are not supported (if you can't access gcr.io, please contact us) ``` docker tag gcr.io/syzkaller/env docker.pkg.github.com/google/syzkaller/env docker login https://docker.pkg.github.com docker push docker.pkg.github.com/google/syzkaller/env ``` ## Syzbot image The syzbot image supports two architectures (arm64, amd64), so we need to build it with care. The example below uses [the standard Docker functionality](https://docs.docker.com/build/building/multi-platform/) to build a multi-arch image in a way that allows to distribute it under one tag names. ```bash docker run --privileged --rm tonistiigi/binfmt --install all docker buildx create --name mybuilder --driver docker-container --bootstrap docker buildx use mybuilder gcloud auth login && gcloud auth configure-docker docker buildx build --platform linux/amd64,linux/arm64 -t gcr.io/syzkaller/syzbot tools/docker/syzbot --push ```