radare2 docker image
Official stable version
The prebuild docker image for the stable version is based on Ubuntu and the radare2 snap build. The Dockerfile to build can be found in this dedicated repository. Any issue found in this packaging can be opened there.
The resulting build only includes the following plugins by default:
Run
To use the prebuild docker image you can use either:
docker run -ti radare/radare2
podman run -ti docker.io/radare/radare2
nerdctl run -ti radare/radare2
To use the prebuild docker image as one shot so it removes everything inside the container on exit just add --rm as follows:
docker run --rm -ti radare/radare2
Another example to use for debugging inside the docker:
docker run --tty --interactive --privileged --cap-add=SYS_PTRACE --security-opt seccomp=unconfined --security-opt apparmor=unconfined radare/radare2
GIT version (r2docker)
Alternatively there is a version with radare2 GIT aimed to be build locally.
This will build an image using Debian with radare2 from git with latest changes.
The Dockerfile to build can be found inside this folder (dist/docker directory inside the radare2 source tree).
Build from GIT
To build this other image run the following lines:
git clone https://github.com/radareorg/radare2.git
cd radare2
make -C dist/docker
This will build an image with the following plugins:
It is possible to specify more packages using the R2PM make variable:
make -C dist/docker R2PM=radius2
Also, you can select the architecture (amd64 / arm64) to compile the image by using the ARCH make variable.
i386 test runner
There is also a dedicated native linux/386 docker runner to build radare2 and run tests from the current worktree.
It is useful for debugging 32-bit regressions and running the r2r cmd tests on an i386 userspace.
Run it with:
make -C dist/docker i386-r2r
This target builds dist/docker/i386-r2r.Dockerfile, clones the current repository inside the container, applies the local git diff, builds and installs radare2 as 32-bit, runs test rc, the unit tests and then r2r.
The full r2r JSON report is copied to dist/docker/out/i386-r2r/results-i386.json.
Some useful variables:
R2_MAKE_JOBS=8 R2R_JOBS=8 make -C dist/docker i386-r2r
OUT_DIR=/tmp/r2-i386 make -C dist/docker i386-r2r
R2_CONFIGURE_FLAGS='--without-qjs' make -C dist/docker i386-r2r
For sanitizer builds you can pass compiler flags through the environment:
CFLAGS='-fsanitize=address' LDFLAGS='-fsanitize=address' make -C dist/docker i386-r2r