Check out my first novel, midnight's simulacra!

Drone

From dankwiki

Drone is a Docker-native CI server. I run one this machine at port 4443.

So far as I've seen, the Drone documentation all steers you via omission towards the "Enterprise" variant of the product (downloaded as a Docker image). I discovered that this Enterprise version had a 5000 build limit the day I hit 5000 builds. At this point, it ceases to process new builds. As this happened 2020-07-04, Independence Day here in America, I promptly declared my independence and prepared an installation of the "OSS" variant.

OSS version

Dockerfiles to build an Alpine-based image can be found here.

Crypto

By default, drone will be using /etc/certs/drone.company.com/server.crt and DRONE_TLS_KEY=/etc/certs/drone.company.com/server.key.

Datastore

Drone keeps its data in /data within the Docker container, presumably backed by some persistent file outside. This primarily consists of a single large SQLite file (mine ran just about 2GB after 5,000 builds).

build_trigger

Drone claims to cut off after 5,000 builds, but my database showed 5,037. Sorting by build_trigger, I counted 19 with "dankamongmen", and 18 with no data in this field. Clearing the column in all builds did not bypass the license, however. At that point, I used the splendid SQLitebrowser to remove the earliest 1,000 builds. Drone now started up without licensing problems.

Better would be to build the OSS binary and copy it into the container, now that I'm pretty sure they use the same schema etc. A naive attempt to do this resulted in drone failing to start with some manner of ENOENT.

See also