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:53:34 +02:00
parent f132ab1814
commit 87d7697326
No known key found for this signature in database
GPG key ID: 4406E80E13CD656C
2 changed files with 33 additions and 0 deletions

View file

@ -16,6 +16,7 @@ with final; {
toggle-kbd-layout = writeShellScriptBin "toggle-kbd-layout" (import ./toggle-kbd-layout.nix final);
uhk-agent = import ./uhk-agent.nix final;
wcwd = writeShellScriptBin "wcwd" (import ./wcwd.nix final);
drone-docker-runner = writeShellScriptBin "drone-docker-runner" (import ./drone-docker-runner.nix final);
# ps-fixes
ps-signal-desktop = writeShellScriptBin "signal-desktop" (import ./ps-signal-desktop.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
''