gpt4 book ai didi

docker - Gitlab Runner:在其他机器上找不到microdnf/yum命令

转载 作者:行者123 更新时间:2023-12-02 19:45:08 24 4
gpt4 key购买 nike

我有两台托管gitlab-runner的服务器。我将一个用作开发版本,将另一个用作生产版本。我在两台机器上都具有相同的配置,因此最新版本的gitlab-runner和最新版本的Docker / docker-compose。
为了使用netstat命令,我需要下载net-tools软件包到我的dockerfiles中。构建器docker是OpenJDK 14的正式镜像,它基于RHEL。因此,为了安装新软件包,我只能使用dnf / microdnf或yum。

好的,到目前为止,一切都应该简单明了。但是...当机器尝试运行命令时:

RUN microdnf install net-tools
在登台机上:

/bin/sh: microdnf: command not found


相反,在生产机器上:

Job succeeded.



好吧,那好吗?让我们更改Dockerfile的net-tools安装
RUN yum install net-tools -y
管道启动,作业计划和...登台机:

Job succeeded.


在生产机器上,您可以看到:

/bin/sh: yum: command not found



我觉得我有点被困,因为没有其他方法可以安装软件包(dnf应该是另一种可能的方法,但不能同时安装在两个docker镜像上),而且我不想应用一种可以通过microdnf“测试”安装的解决方法或好吃。
我希望我已尽我所能解决了这个问题。

最佳答案

这不是一个适当的解决方案,但至少可以奏效。我的意思是,这只是一种解决方法,必须尽快予以替换。
无论如何,在我的docker-files中,我安装了microdnf / yum ...我只是两者都做,忽略了错误。在Linux中,您可以“覆盖”退出状态,并在命令后附加'; exit(0)'。

RUN yum install net-tools -y; exit 0
RUN microdnf install net-tools -y; exit 0
在两台机器上,仅通过yum和microdnf执行安装的附件,当然其中之一将成功执行该操作。相反,另一个将以“窒息错误”终止。
The good one
The bad one
此解决方法将使您能够以一种非常粗略的方式解决此问题,但至少...可以。 “窒息的错误”将被忽略,并且操作不会崩溃。

关于docker - Gitlab Runner:在其他机器上找不到microdnf/yum命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63934718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com