Gitlab 执行器如何管理已安装的依赖项?

问题描述 投票:0回答:1

如果我自己在 Gitlab 上有 shell 执行器并在一项作业中安装 Java,那么该 Java 在下一项作业中也可用吗?

其他类型的跑步者呢?

gitlab-ci gitlab-ci-runner
1个回答
0
投票

执行器在管理已安装的依赖项方面并不具有直接作用。该环境或者预先安装了或者没有预先安装特定的软件。简短的回答是:运行者不以任何方式管理已安装的软件。 (外壳)运行者既不会安装也不会删除软件。因此,如果您在作业中通过 shell 命令安装软件,则该软件应保持安装状态。
但要完全理解在一项作业中安装依赖项是否会持续到下一项作业的答案取决于您如何部署运行器、您正在使用的执行器类型以及其他详细信息(例如您如何安装软件)。

如果您使用

shell
执行器并安装软件包(例如,
apt install ...
),则后续作业 在完全相同的运行器主机上 应该 仍然安装了该软件包(除非后续操作删除/升级了包裹)。但是,您仍然必须考虑到您可能并不总是使用同一主机,例如,如果您配置了多个或共享运行器,或者主机在某个时间点被替换。在某些情况下,即使使用
shell
执行器,主机实际上也可能是短暂的,例如在某些自动缩放场景中。

如果您使用基于 docker 的执行器或具有一次性环境的某些执行器,通常您必须依赖指定的

image:
来包含任何依赖项。每个作业都在一个新容器中启动,因此安装依赖项(例如通过运行
apt install ...
)不会在作业之间持续存在。可能需要注意一些注意事项,例如将卷从主机安装到作业容器时。

© www.soinside.com 2019 - 2024. All rights reserved.