Add docker drone runner wrapper

Adds a small sh wrapper around a drone runner docker container. The
`stop` and `logs` functionality is barely better than using straight up
docker, but at least it saves you from having to know any of the
implementation details.
This commit is contained in:
Benjamin Bädorf 2022-05-02 23:44:31 +02:00
parent 59c1a23660
commit e3f7f43338
No known key found for this signature in database
GPG key ID: 4406E80E13CD656C
2 changed files with 33 additions and 0 deletions

View file

@ -20,4 +20,5 @@ with final; {
ps-signal-desktop = writeShellScriptBin "signal-desktop" (import ./ps-signal-desktop.nix final); ps-signal-desktop = writeShellScriptBin "signal-desktop" (import ./ps-signal-desktop.nix final);
scan2paperless = writeShellScriptBin "scan2paperless" (import ./scan2paperless.nix final); scan2paperless = writeShellScriptBin "scan2paperless" (import ./scan2paperless.nix final);
drone-docker-runner = writeShellScriptBin "drone-docker-runner" (import ./drone-docker-runner.nix final);
} }

View file

@ -0,0 +1,32 @@
self: with self; ''
case $1 in
start)
${self.docker}/bin/docker run --detach \
--volume=/var/run/docker.sock:/var/run/docker.sock \
--env=DRONE_RPC_PROTO=$DRONE_RPC_PROTO \
--env=DRONE_RPC_HOST=$DRONE_RPC_HOST \
--env=DRONE_RPC_SECRET=$(${self.libsecret}/bin/secret-tool lookup drone rpc-secret) \
--env=DRONE_RUNNER_CAPACITY=4 \
--env=DRONE_RUNNER_NAME=$(${self.inetutils}/bin/hostname) \
--publish=3000:3000 \
--restart=always \
--name=drone-runner \
drone/drone-runner-docker:1
;;
stop)
${self.docker}/bin/docker stop drone-runner
${self.docker}/bin/docker rm drone-runner
;;
logs)
${self.docker}/bin/docker logs drone-runner
;;
*)
echo "Usage: drone-docker-runner <start|stop|logs>"
exit 1;
;;
esac
''