如何在 gitlab CI 构建中仅安装 ssh?
Posted
技术标签:
【中文标题】如何在 gitlab CI 构建中仅安装 ssh?【英文标题】:How to install only ssh in a gitlab CI build? 【发布时间】:2021-02-10 20:02:51 【问题描述】:我想创建一个gitlab-ci
部署阶段,它应该通过ssh
上传文件。
我的 ubuntu 镜像不包含 ssh,所以我必须安装它。
image: adoptopenjdk/maven-openjdk11
...
deploy:
stage: deploy
script:
- which ssh || (apt-get update -y && apt-get install -y ssh)
...
问题:因此我必须执行一个完整的apt-get install
,它将拉取图像的所有最新更新。
结果:
Reading state information...
The following additional packages will be installed:
dbus dmsetup file gir1.2-glib-2.0 libapparmor1 libargon2-0 libbsd0 libcap2
libcryptsetup12 libdbus-1-3 libdevmapper1.02.1 libedit2
[...]
The following NEW packages will be installed:
dbus dmsetup file gir1.2-glib-2.0 libapparmor1 libargon2-0 libbsd0 libcap2
libcryptsetup12 libdbus-1-3 libdevmapper1.02.1 libedit2
[...]
这对于安装 ssh 客户端来说是没有必要的。
问题:有没有办法只安装ssh
客户端而不进行任何操作系统更新?
【问题讨论】:
【参考方案1】:据我所知,apt-get update
将软件包列表更新为最新的,apt-get install ssh
仅安装 ssh
并且不更新“操作系统”(我猜你'正在使用基于 Docker 的运行器)。
您看到的额外包是 ssh 所需的依赖项。或者,请查看gitlab ci docs
【讨论】:
好的,我不知道这些包都属于 ssh。以上是关于如何在 gitlab CI 构建中仅安装 ssh?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 gitlab-ci.yml 文件中通过 ssh 设置变量值
Gitlab - 无法对 CI 和 CD 构建的远程服务器进行身份验证