{ pkgs, ... }: let entrypoint = pkgs.writeTextFile { name = "entrypoint"; executable = true; destination = "/bin/entrypoint"; text = builtins.readFile ./entrypoint.sh; }; runnerConfig = pkgs.writeTextDir "/etc/gitea-act-runner/config.yaml" ( builtins.readFile ( (pkgs.formats.yaml { }).generate "config.yaml" { runner = { file = "/var/lib/gitea-act-runner/registration"; capacity = 4; }; cache.dir = "/tmp/gitea-act-runner/"; # https://gitea.com/gitea/act_runner/issues/223#issuecomment-743748 container.docker_host = "-"; } ) ); in pkgs.dockerTools.buildImage { name = "gitea-act-runner"; fromImage = import ../base { inherit pkgs; }; copyToRoot = pkgs.buildEnv { name = "root"; paths = with pkgs; [ entrypoint gitea-actions-runner runnerConfig curl jq ]; pathsToLink = [ "/bin" "/etc" ]; }; config = { Entrypoint = [ "entrypoint" ]; WorkDir = "/var/lib/gitea-act-runner"; Volumes = { "/var/lib/gitea-act-runner" = { }; "/tmp/gitea-act-runner" = { }; }; }; }