Giter Club home page Giter Club logo

dockerfiles's Introduction

Buildfarm Dockerfiles

This is a collection of Dockerfiles to create containers to run the PostgreSQL Buildfarm client. They need to run in Docker >= 18.03 due to a prior bug in setting ownership of mounted directories.

Build the containers in the usual way. It's useful to pass in your uid/gid so the user writing to the buildroot will have the right privileges:

docker build --rm=true -t my-buildfarm-client -f Dockerfile.foo \
	   --build-arg uid=`id -u` --build-arg gid=`id -g` .

The client needs to be attached to some persistent storage, which will contain all the state for the buildfarm client, as well as the ephemeral build artefacts. You will also need to get a config file. First do this:

mkdir buildroot
docker run --rm=true -v `pwd`/buildroot:/app/buildroot my-buildfarm-client \
	   cp build-farm.conf.sample buildroot/build-farm.conf

Now edit buildroot/build-farm.conf:

  • change the animal name
  • change the buildroot to "/app/buildroot"
  • turn off git mirror
  • turn on vpath builds

These last two are not required but are recommended.

Now you can run the client:

docker run --rm=true -v `pwd`/buildroot:/app/buildroot my-buildfarm-client \
	   run_build.pl --config=buildroot/build-farm.conf --test

On Alpine you need to delay the check step until after the install, so add this to the above command

--delay-check

Alpine also has a few other things that don't seem to work, such as nls, ldap, and gssapi.

If you want to do a --from-source build, then mount the source directory as well as the buildroot. There is a supplied config file for these builds, which expects the source to be mounted at /app/pgsrc:

docker run --rm=true -v `pwd`/buildroot:/app/buildroot \
	   -v '/path/to/src:/app/pgsrc' \
	   my-buildfarm-client \
	   run_build.pl --config=build-fromsource.conf

dockerfiles's People

Contributors

adunstan avatar bpd0018 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.