You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This repo contains files useful for building and developing FoundationDB. In
particular, it contains the docker image definitions used by FoundationDB team
members for development, and the image definitions used by the FoundationDB
CI/CD system.
How-to
Build the images
The Dockerfile(s) in this project are built to leverage multi-stage builds.
To build the various images are built with commands like:
The build target contains the core dependencies and tools that are required to compile FoundationDB.
The devel target is "FROM" the build image. It adds developer tools and other convenience packages.
The distcc target is "FROM" the build image. It adds a distcc daemon to the images. This is used to run a distcc service.
The codebuild target is "FROM" the devel images. It us used in FoundationDB CI/CD.
Build FoundationDB
Here's an example on how to build FoundationDB using the build image.
First you need to run the container:
docker pull foundationdb/build:rockylinux9-latest
docker run -it foundationdb/build:rockylinux9-latest /bin/bash
Then, inside the container, you can run:
source /opt/rh/gcc-toolset-13/enable
mkdir -p src/foundationdb
git clone https://github.com/apple/foundationdb.git src/foundationdb/
mkdir build_output
cmake -S src/foundationdb -B build_output -G Ninja
ninja -C build_output # If this crashes it probably ran out of memory. Try ninja -j1
Some Notes
The centos6 images are deprecated, and have fallen behind the centos7 images. The definitions are here, primarily, for posterity to see.
The centos7 images are deprecated, and have fallen behind the rockylinux9 images. The definitions are here, primarily, for posterity to see.
The rockylinux9 images are the current active development environment.
The windows images are maintained by the team at Doxense.