Distcc (and ccache) in docker !
- Support for multiple systems (Ubuntu, Debian, Arch, Fedora, Alpine)
- Distcc (and ccache)
- Easy to use and configure
First, you need to run the container. You can use the following command:
Note: You can replace debian-11
with ubuntu-20.04
, archlinux-rolling
, fedora-34
or alpine-3.14
ect...
docker run -d -p 3632:3632 -p 3633:3633 bensuperpc/distcc:debian-11 --allow 0.0.0.0/0
Second, you need to configure your environment to use the container. You can use the following command:
Note: You need to replace X
with the number of cores you want to use, and if you want, localhost with the IP of the container.
export DISTCC_HOSTS='localhost/X localhost:3632/X'
For Cmake, you can use the following command:
Note: We use Ninja
as a generator for build speed but you can use Make
or other generators.
cmake -DCMAKE_C_COMPILER_LAUNCHER="ccache;distcc" -DCMAKE_CXX_COMPILER_LAUNCHER="ccache;distcc" -S . -B build -G Ninja && cmake --build build
For Make, you can use the following command:
Note: You can replace X
with the number of cores you want to use.
make -jX CC="distcc gcc" CXX="distcc g++"
You can build the image using the following command:
Note: You can replace debian
with ubuntu
, archlinux
or alpine
.
make debian
With tests: Note: Currently, the tests doesn't return an error code if the tests failed.
make debian.test
System | Version | Image |
---|---|---|
Debian | 11 | bensuperpc/distcc:debian-11 |
Debian | 10 | bensuperpc/distcc:debian-10 |
Debian | 9 | bensuperpc/distcc:debian-9 |
Ubuntu | 22.04 | bensuperpc/distcc:ubuntu-22.04 |
Ubuntu | 20.04 | bensuperpc/distcc:ubuntu-20.04 |
Ubuntu | 18.04 | bensuperpc/distcc:ubuntu-18.04 |
Archlinux | base-devel | bensuperpc/distcc:archlinux-base-devel |
Alpine | 3.17 | bensuperpc/distcc:alpine-3.17 |
Alpine | 3.16 | bensuperpc/distcc:alpine-3.16 |
Alpine | 3.15 | Not supported |
Fedora | 37 | bensuperpc/distcc:fedora-37 |
Fedora | 36 | bensuperpc/distcc:fedora-36 |
Fedora | 35 | bensuperpc/distcc:fedora-35 |
Manjaro | rolling | bensuperpc/distcc:manjarolinux-latest |
CentOS | 8 | Not supported |
If you want to contribute to this project, you can do it by opening a pull request or an issue.
See the LICENSE document.