首页 > 解决方案 > 如何在 gitlab CI 构建中仅安装 ssh?

问题描述

我想创建一个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客户端而不需要任何操作系统更新?

标签: ubuntusshgitlabgitlab-ci

解决方案


据我所知,apt-get update将软件包列表更新为最新的,并且apt-get install ssh安装而不更新“操作系统”(我猜你正在使用基于 Docker 的运行器)。 ssh

您看到的额外包是 ssh 所需的依赖项。或者,请查看gitlab ci 文档


推荐阅读