Github 建议以非 root 用户身份运行他们的运行程序,这会导致一些混合 docker 和非 docker 操作的问题。这很烦人,因为它导致结帐操作无法运行,因为它无法访问在 docker 容器中运行的操作创建的文件。
这可以通过使用无根 docker 运行操作运行程序来解决吗?
Github 建议以非 root 用户身份运行他们的运行程序,这会导致一些混合 docker 和非 docker 操作的问题。这很烦人,因为它导致结帐操作无法运行,因为它无法访问在 docker 容器中运行的操作创建的文件。
这可以通过使用无根 docker 运行操作运行程序来解决吗?
这个问题可以通过以 root 运行 github actions runner 来解决,这在一定程度上降低了安全性。
更好的解决方案是使用无根 docker:
systemctl --user enable docker
systemctl --user start docker
sudo loginctl enable-linger $(whoami)
还要确保按照同一页面上的描述创建无根上下文。这将使您自己的 docker 命令和 github 操作运行器自动使用无根 docker。
安装自托管运行器:https ://docs.github.com/en/actions/hosting-your-own-runners/adding-self-hosted-runners (如果已安装则跳过)
重新(启动)动作运行器。这可以通过重新启动其 systemd 服务来完成。您的跑步者现在应该可以使用无根 docker
如果您在使用 buildx 的新 docker build github 操作时遇到问题,另请参阅How to solve error with rootless docker in github actions self hosting runner:写 /proc/sys/net/ipv4/ping_group_range:无效参数:未知