在进入docker容器(arch linux)之前,我试图在主机系统上安装一个软件包(ubuntu-latest)
我尝试了很多语法,但我得到它的错误
on: [push]
jobs:
update-aur:
runs-on: ubuntu-latest
steps:
- run : sudo apt-get install runc
container: archlinux
steps:
- run: |
pacman --noconfirm -Syu
pacman --noconfirm -S base-devel
这给出了已经定义的步骤错误
3条答案
按热度按时间w8ntj3qf1#
如果运行的计算机配置对构建很重要,请尝试使用
self-hosted runner
。1.您可以在某些云提供商中创建VM(例如AWS,Azure等)并将其注册到GitHub-CI。
1.安装GitHub-CI服务
1.安装您需要的所有实用程序
1.将runner注册到存储库
1.将
run-on
的构建脚本更改为指向自宿主运行程序您可以在GitHub-CI Docs中找到更多信息
cx6n0qe32#
您可以只运行容器中的一个步骤,而不是整个作业。类似于:
我不知道这在您的情况下是否实用,因为您可能希望在同一个容器中运行一系列步骤。在任何情况下,你都可以在这里找到更多关于容器中运行步骤的信息,以及这里提供的不同选项
z9ju0rcb3#
您可以将docker socket从主机挂载到容器中,并且可以启动一个与主机共享pid命名空间的特权容器。每一个都给你提供了以后从容器中伸出手的选项。
通过挂载的docker socket,您可以与主机上的docker守护进程对话。
由于有了
--privileged --pid=host
,您可以使用nsenter
从容器中转义,如https://stackoverflow.com/a/63140387/1047788中所述