我有一个存储库,它有一系列文档(多标记文件、PDF、GSN参数等)。这需要使用我们的内部(目前)专有工具将这些文档组装成类似HTML的文档。内部工具使用起来非常复杂,而且(目前)还不能部署。
我尝试的是编译Ubuntu上的内部工具,我知道这个工具将用于这项工作,然后不告诉GitLab (我们使用的是自托管的GitLab)在试图组装文档时使用任何接口映像。唉,当CI作业运行时,我看到:
Pulling docker image alpine:latest ...然后,当然,我在VM上安装的东西都没有了。
注意:当前“安装”复杂的内部工具的方法,除了通过apt-get等安装软件包(我已经有关于如何在Docker中这样做的例子)之外,是克隆存储库,然后在克隆的目录中运行npm install和rake install。
发布于 2022-06-09 20:21:55
这是由你的GitLab运行配置控制的.当运行程序使用docker执行器时,它将始终为构建使用一个停靠映像。如果您想在不使用docker的情况下运行GitLab作业,则需要在VM上配置带有"shell“执行器的GitLab运行程序。
然而,使用image: ubuntu:focal或类似的可能就足够了。您通常不必担心执行者碰巧在容器中运行您的任务。这也是有益的,因为它意味着您的构建环境是可复制的,该过程将在您的工作中定义。
myjob:
image: ubuntu:focal
script:
- apt update && apt install -y nodejs ruby # or whatever else
# - npm install
# - gem install
# - rake install
# etc...
- 或者更好的是,如果您可以在安装了核心依赖项的情况下生成一个坞映像,那么您只需在image: my-special-image作业中使用GitLab来使用该映像作为构建环境。
https://stackoverflow.com/questions/72565718
复制相似问题