I have started doing binary builds, for Linux x86_64, using Docker.

There are currently only a few packages, although several builds for
each, will add more.

How does this differ from rumprun-packages-wip? These are actual
builds, with scripts, not instructions.

How does this differ from packages? They exist now, they build
binaries, like packages, but the build processes may be a bit ad hoc,
ie they will download git repos or tarballs during the build process
rather than having a proper source repo. The end build currently has
all the source and much of the intermediate build stages in, so they
are overly large, although that can be useful for debugging. The
naming needs fixing.

What use are these? You can view them as a prototype for packaging, or
other build systems. The initial rationale was to have easy to install
builds of binaries without someone having to go through a sparsely
documented build process, plus to do automated testing on more complex
binaries than the tests in the repos. I haven't automated testing yet,
partly due to complexities of setting up the networking for tests in
an automated way, but I am working on this.

What architectures are supported? Everything is built for
Linux/x86_64. Currently 32 bit and 64 bit are not co-installable
easily, and it adds a lot of complexity, plus Docker is very
Linux/x86_64 centric so that probably won't change.

What is there? Builds are layered between the base toolchains,
applications, then application+config, with automatic triggers to
rebuild images when the dependencies are updated.

Base toolchain builds:
justincormack/frankenlibc - base build for userspace
justincormack/rumprun - base build for xen, hw (NB currently built off
a fork, so not updated on every commit, updated 18 June)

Application builds:
off frankenlibc:
justincormack/rump-nginx - Nginx
justincormack/rump-nginx-lua - Nginx + Nginx Lua module
justincormack/rump-lua - Lua

off rumprun:
justincormack/rumprun-nginx-lua - Nginx + Nginx Lua module, rumpbaked
for for xen, qemu, kvm

Application + config builds:
These add config files, and ideally will be able to run some tests but
at the moment running the tests is manual - some repos have some
scripts, but it is still work in progress
justincormack/rump-nginx-lua-test - this can be run from docker with
the right network setup
justincormack/rumprunxen-nginx-lua-test
justincormack/rumprunqemu-nginx-lua-test

If you want to poke around inside these, install docker (apt-get
install docker.io), and add yourself to docker group, then you can eg
do
docker run -i -t justincormack/rumprunqemu-nginx-lua-test /bin/sh
Note the download will be pretty slow the first time as it has all the
build stuff there, but much of this is shared between the images, so
the next one should be faster.
That will give you a shell inside a system image. Binaries will be in
/usr/local/bin and build trees in /usr/src

You can browse everything on
https://registry.hub.docker.com/repos/justincormack/ and find the
repos on https://github.com/justincormack?tab=repositories - check the
Dockerfile for the build instructions. You can't currently download
old builds as they are not tagged, I might fix this at some point, but
it probably means changing how the builds happen.

Reply via email to