Skip to content

Gitea Runner 使用总结

act_runner 在 mac 系统后台运行并开机启动

每次在本机启动 act_runner 比较麻烦,写了一个脚本

1. 下载 act_runner

bash
wget https://gitea.com/gitea/act_runner/releases/download/v0.1.8/act_runner-0.1.8-darwin-arm64 mv act_runner-0.1.8-darwin-arm64 /usr/local/bin/act_runner chmod +x /usr/local/bin/act_runner

2. 创建 plist 文件

在目录 ~/Library/LaunchAgents 创建一个 名字叫 act_runner.plist 的文件,并写入以下代码

ini
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>EnvironmentVariables</key>
        <dict>
            <key>DOCKER_HOST</key>
            <string>unix:///Users/shen/.docker/run/docker.sock</string>
            <key>XDG_RUNTIME_DIR</key>
            <string>/Users/shen/.docker/run</string>
        </dict>
        <key>Label</key>
        <string>com.gitea.act_runner</string>
        <key>ProgramArguments</key>
        <array>
            <string>/usr/local/bin/act_runner</string>
            <string>daemon</string>
            <string>-c</string>
            <string>/Users/shen/Documents/act_runner.yaml</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>KeepAlive</key>
        <true/>
        <key>StandardOutPath</key>
        <string>/tmp/act_runner.out</string>
        <key>StandardErrorPath</key>
        <string>/tmp/act_runner.err</string>
    </dict>
</plist>

请注意,因为 docker 在 mac 系统中可能不是以 root 方式运行,docker.sock 并没有在默认的位置 /var/run/docker.sock ,所以,我们通过环境变量指定了 rootless 模式 下的配置,按照自己的实际情况修改路径即可 或者,你可以在高级设置里面将下图选项打上对钩,上面代码中 EnvironmentVariables 就可以删除了(key 与 dict 部分)

3. 下面是启动、停止命令

bash
# 启动
launchctl load ~/Library/LaunchAgents/act_runner.plist

# 停止
launchctl unload ~/Library/LaunchAgents/act_runner.plist

docker rootless 模式

rootless 模式可以让您的 docker 在非 root 用户下,正常使用 action

编辑 .bashrc

bash
export XDG_RUNTIME_DIR=/Users/shen/.docker/run
export DOCKER_HOST=unix:///Users/shen/.docker/run/docker.sock
ini
# alias act_runner.yaml 里面修改 runner 文件位置
alias runner='act_runner daemon -c /Users/shen/Documents/act_runner.yaml'