Fre*_*ens 6 containers github docker github-actions rootless
Github 建议以非 root 用户身份运行运行程序,这会引起一些有关混合 docker 和非 docker 操作的问题。这非常烦人,因为它导致签出操作无法运行,因为它无法访问在 docker 容器中运行的操作创建的文件。
可以通过使用 rootless docker 运行 actions runner 来解决这个问题吗?
这个问题可以通过以 root 身份运行 github actions runner 来解决,但这在一定程度上降低了安全性。
更好的解决方案是使用 rootless docker:
systemctl --user enable docker
systemctl --user start docker
sudo loginctl enable-linger $(whoami)
Run Code Online (Sandbox Code Playgroud)
还要确保按照同一页面上的描述创建无根上下文。这将使您自己的 docker 命令和 github actions runner 自动使用 rootless docker。
安装自托管运行器:https://docs.github.com/en/actions/hosting-your-own-runners/adding-self-hosted-runners(如果已安装则跳过)
将环境变量添加DOCKER_HOST
到运行程序目录中的 .env 文件中。该文件可能已默认创建。您添加的行应如下所示(如果您的 UID 不是 1000,请更改 1000):
DOCKER_HOST=unix:///run/user/1000/docker.sock
Run Code Online (Sandbox Code Playgroud)
如果您在使用 buildx 的新 docker build github 操作时遇到问题,另请参阅如何解决 github 操作中无根 docker 自托管运行程序的错误: write /proc/sys/net/ipv4/ping_group_range: invalid argument:unknown