Flap Runner - is job runner service with simple REST web API.
302
Flap Runner - is job runner service with simple REST web API.
Currently only linux is supported.
See sources at https://github.com/baterflyrity/flaprunner.
Each tag is created from corresponding python image tag, e.g. baterflyrity/flaprunner:3.11 is based
on python:3.11.
Additionally *-docker tags contain preinstalled docker client ready to mount to host's docker engine (see below).
All latest tags are equivalents of corresponding most recent version tags, e.g. baterflyrity/flaprunner:latest is
based on baterflyrity/flaprunner:3.11 assuming versions 3.12, 4.0, e.t.c. do not exist. Latest images do not
base on python:latest.
mkdir flaprunner && cd flaprunner).docker-compose.yaml and insert content below:services:
flaprunner:
restart: always
image: baterflyrity/flaprunner
ports:
- 39393:39393
volumes:
- .:/projects
Alternatively download default
one: curl https://raw.githubusercontent.com/baterflyrity/flaprunner/main/tests/docker-compose.yaml > docker-compose.yaml.
docker compose up -d.docker run -d --name flaprunner -v .:/projects -p 39393:39393 baterflyrity/flaprunnersudo apt-get update && sudo apt-get install python3.11. Alternatively install python from
sources: sudo apt-get update && sudo apt-get install wget && wget -qO - https://raw.githubusercontent.com/tvdsluijs/sh-python-installer/main/python.sh | sudo bash -s 3.11.3.git clone https://github.com/baterflyrity/flaprunner.git.python3.11 -m pip install -r flaprunner/sources/requirements.txt.python3.11 flaprunner/sources/flaprunner.py --projetcs "/path/to/registry/directory" (--help option
is supported too).curl http://localhost:39393/run/<project>/<job>.Each job is executed with /bin/sh from project's root directory.
echo "cat log.txt" > ./.flaprunner/log.sh and then executed
via curl http://localhost:39393/run/<project>/log.In this simple example we crate one project called my_project inside projects registry directory called registry. Then we define a job called layout which prints project's structure.
mkdir registry
mkdir registry/my_project
mkdir registry/my_project/.flaprunner
echo "ls -a1R" > registry/my_project/.flaprunner/layout.sh
Now we start Flap Runner, mount registry directory and request job execution.
docker run -d --name flaprunner -v registry:/projects -p 39393:39393 baterflyrity/flaprunner
curl http://localhost:39393/run/my_project/layout
Print results:
.:
.
..
.flaprunner./.flaprunner:
.
..
layout.sh
This example demonstrates dind (docker in docker) alternative assuming host docker daemon is used. We are going to build docker image with a job.
Consider docker settings are inherited from host.
Change startup command (see Installation)
to docker run -d --name flaprunner -v .:/projects -v /var/run/docker.sock:/var/run/docker.sock -p 39393:39393 baterflyrity/flaprunner:latest-docker
or docker-compose.yaml file to:
services:
flaprunner:
restart: always
image: baterflyrity/flaprunner:latest-docker
ports:
- 39393:39393
volumes:
- .:/projects
- /var/run/docker.sock:/var/run/docker.sock
Alternatively download default
one: curl https://raw.githubusercontent.com/baterflyrity/flaprunner/main/tests/docker-compose-docker.yaml > docker-compose.yaml.
.flaprunner/docker-build.sh:docker version
docker info
echo "Building..."
docker pull ubuntu
docker image tag ubuntu myfirstimage
echo "Done. See image myfirstimage."
curl http://localhost:39393/run/<project>/docker-build
Content type
Image
Digest
sha256:b236fd649…
Size
381.2 MB
Last updated
about 2 years ago
docker pull baterflyrity/flaprunner