构建OpenJDK 17 Docker镜像遇/bin/sh: apt-get: not found错误求助
解决
/bin/sh: apt-get: command not found错误 问题出在你使用的openjdk:17镜像默认基于Alpine Linux,而Alpine使用的包管理器是apk,不是Debian/Ubuntu系列的apt-get,所以会出现命令找不到的错误。
这里提供两种解决方案:
方案1:切换到Debian基础的OpenJDK镜像
如果你习惯用apt-get,可以改用基于Debian的OpenJDK镜像,比如openjdk:17-slim或openjdk:17-jdk,这些镜像支持apt-get命令:
FROM openjdk:17-slim RUN apt-get update && apt-get upgrade -y COPY target/*.jar app.jar ENTRYPOINT ["java","-jar","/app.jar"]
方案2:改用Alpine的apk命令
如果想继续使用体积更小的Alpine镜像,将apt-get相关命令替换为Alpine的apk命令:
FROM openjdk:17 RUN apk update && apk upgrade COPY target/*.jar app.jar ENTRYPOINT ["java","-jar","/app.jar"]
补充说明
- Alpine镜像体积更小,适合对镜像大小有要求的场景;
- Debian基础的镜像兼容性更好,适合需要安装Debian/Ubuntu生态软件包的场景。
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

