Dockerfile执行RUN yum命令提示yum: not found的解决方法咨询
解决Dockerfile中
yum: not found的报错问题 核心原因
你的Dockerfile里连续使用了两个From指令,Docker会以最后一个From openjdk:11作为最终基础镜像。而openjdk:11的默认基础镜像是Debian系(如buster),该系统使用apt作为包管理器,不存在yum命令,因此触发报错。另外你的指令里还有拼写错误:ynm应为yum,ncuress大概率是nmap-ncat(对应nc工具)。
解决方案
根据需求选择以下两种方案之一:
方案一:基于CentOS 7构建并安装OpenJDK 11
保留CentOS 7作为基础镜像,在其之上安装OpenJDK 11及所需工具:
From centos:7 MAINTAINER Dengc ENV MYPATH /usr/local WORKDIR $MYPATH # 安装OpenJDK 11、vim、net-tools及nc工具,并清理缓存减小镜像体积 RUN yum -y install java-11-openjdk-devel vim net-tools nmap-ncat \ && yum clean all EXPOSE 80 CMD /bin/bash
方案二:基于openjdk:11镜像,改用apt安装工具
若坚持使用openjdk:11作为基础镜像,将yum命令替换为Debian系的apt命令:
From openjdk:11 MAINTAINER Dengc ENV MYPATH /usr/local WORKDIR $MYPATH # 更新源并安装所需工具,清理缓存减小镜像体积 RUN apt-get update && apt-get install -y vim net-tools netcat-openbsd \ && apt-get clean && rm -rf /var/lib/apt/lists/* EXPOSE 80 CMD /bin/bash
额外提示
Dockerfile中仅能有一个有效基础镜像(多阶段构建场景除外),需根据实际需求选择合适的基础镜像;同时要注意命令拼写,避免因笔误引发额外问题。
内容的提问来源于stack exchange,提问作者chao
相关产品推荐
相关产品推荐

