Docker Gitlab Runner:在其他计算机上未找到microdnf/yum命令

Docker Gitlab Runner:在其他计算机上未找到microdnf/yum命令,docker,gitlab-ci-runner,yum,rhel,dnf,Docker,Gitlab Ci Runner,Yum,Rhel,Dnf,我有两台不同的服务器,托管了gitlab runner。我使用一个作为开发版本,另一个作为生产版本。我在这两台机器上都有相同的配置,所以最新版本的gitlab runner和最新版本的Docker/Docker compose 为了使用netstat命令,我需要下载nettools包到我的dockerfiles中。builder docker是OpenJDK 14的官方形象,它基于RHEL。因此,为了安装新软件包,我只能使用dnf/microdnf或yum 好的,到目前为止,一切都应该简单明了

我有两台不同的服务器,托管了gitlab runner。我使用一个作为开发版本,另一个作为生产版本。我在这两台机器上都有相同的配置,所以最新版本的gitlab runner和最新版本的Docker/Docker compose

为了使用netstat命令,我需要下载nettools包到我的dockerfiles中。builder docker是OpenJDK 14的官方形象,它基于RHEL。因此,为了安装新软件包,我只能使用dnf/microdnf或yum


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

RUN microdnf install net-tools
在临时计算机上:

/bin/sh:microdnf:未找到命令

相反,在生产机器上:

乔布斯成功了


好吧,那百胜呢?让我们更改Dockerfile的net tools安装

RUN yum install net-tools -y
管道已启动,作业已安排,并且。。。暂存机:

乔布斯成功了

在生产机器上,如图所示:

/bin/sh:yum:未找到命令


我觉得我有点被困了,因为没有其他方法来安装软件包(dnf应该是另一种可能的方法,但它不能同时安装在两个docker映像上),我不想应用一种可以通过microdnf或yum“测试”安装的解决方法


我希望我已经尽可能清楚地说明了这个问题。

这不是一个合适的解决方案,但至少它是有效的。我的意思是,这只是一个必须尽快更换的解决办法

无论如何,在我的docker文件中,我安装了microdnf/yum。。。我只是两者都做,忽略错误。在Linux中,您可以“覆盖”附加的退出状态“;向您的命令退出(0)

RUN yum install net-tools -y; exit 0
RUN microdnf install net-tools -y; exit 0
在这两台机器上,append只是通过yum和microdnf执行安装,当然,其中一台将成功执行操作;相反,另一个将以“窒息性错误”终止


此解决方法将允许您以非常粗略的方式克服此问题,但至少。。。它起作用了。“窒息错误”将被忽略,操作将顺利进行,不会发生崩溃。

这不是一个合适的解决方案,但至少它是有效的。我的意思是,这只是一个必须尽快更换的解决办法

无论如何,在我的docker文件中,我安装了microdnf/yum。。。我只是两者都做,忽略错误。在Linux中,您可以“覆盖”附加的退出状态“;向您的命令退出(0)

RUN yum install net-tools -y; exit 0
RUN microdnf install net-tools -y; exit 0
在这两台机器上,append只是通过yum和microdnf执行安装,当然,其中一台将成功执行操作;相反,另一个将以“窒息性错误”终止

此解决方法将允许您以非常粗略的方式克服此问题,但至少。。。它起作用了。“窒息错误”将被忽略,操作将顺利进行,不会发生崩溃