For those OSes that support Docker, we run builds inside of Docker containers. These containers are built using the build.sh
command at the root level.
Separate targets exist to build a compatible SpiderMonkey 1.8.5 package for each Linux target release.
./build.sh platform <distro>-<version>
Valid distro
and version
values come from the table above.
ERLANGVERSION=17.5.3 ./build.sh platform debian-jessie
couchdbdev
organization. Ask the CouchDB PMC for assistance with this.export DOCKER_ID_USER="username"
docker login
and enter your password../build.sh publish <distro>-<version>
just as above.build.sh
optionsRecognized commands: clean <plat> Removes all images for <plat>. clean-all Cleans all images for all platforms. base <plat> Builds the base (no JS/Erlang) image for <plat>. base-all Builds all base (no JS/Erlang) images. js Builds the JS packages for <plat>. js-all Builds the JS packages for all platforms. js-no-rebuild Builds the JS packages for <plat> without rebuilding the base image first. js-all-no-rebuild Same as above, with the same condition. js-upload <plat> Uploads the JS packages for <plat> to bintray. Requires BINTRAY_USER and BINTRAY_API_KEY env vars. platform <plat> Builds the image for <plat> with Erlang & JS support. platform-all Builds all images with Erlang and JS support. platform-upload Uploads the couchdbdev/* images to Docker Hub. Requires appropriate credentials. platform-upload-all Uploads all the couchdbdev/* images to Docker Hub. couch <plat> Builds and tests CouchDB for <plat>. couch-all Builds and tests CouchDB on all platforms. couch-pkg <plat> Builds CouchDB packages for <plat>. couch-pkg-all Builds CouchDB packages for all platforms.
After building the image as above:
docker run -it couchdbdev/<tag>
where <tag>
is of the format <distro>-<version>-<type>
, such as debian-stretch-erlang-19.3.6
.
./build.sh couch <distro>-<version>
The Linux docker containers are also used to build suitable SpiderMonkey 1.8.5 binary packages.
./build.sh js <distro>-<version>
To build packages for all supported platforms:
./build.sh js-all
dockerfiles
directory../build.sh base <distro>-<version>
. Solve any problems with the build process here../build.sh js <distro>-<version>
. Again, fix any problems that arise../build.sh js-upload <distro>-<version>
../build.sh platform <distro>-<version>
../build.sh platform-upload <distro>-<version>
.Jenkinsfile
.couchdb-pkg
, out for review and merging.We are eager for contributions to enhance the build scripts to support setting up machines with the necessary build environment for:
as well as alternative architectures for the already supported image types (arm, ppc64le, s390x, sparc, etc).
We know that Docker won't support most of these, but we should be able to at least expand the install scripts for all of these platforms (save Win x64).
See: