OpenShift部署Docker镜像后Pod终端提示无法访问app.jar的原因是什么
报错「Unable to access jarfile app.jar」的常见原因
- 镜像构建上下文缺少对应jar包
执行docker build时,当前工作目录(构建上下文)下不存在名为app.jar的文件,ADD指令未成功将jar包拷贝到镜像中。可通过docker run -it [镜像名] ls /opt/app本地启动镜像检查是否存在该文件。 - OpenShift运行用户权限不足
OpenShift默认使用随机非root用户启动容器,你的Dockerfile中仅用root用户创建了/opt/app目录、添加了jar包,未给其他用户开放目录和文件的读取执行权限,非root用户无法访问app.jar。 - 部署时挂载卷覆盖了应用目录
若你在OpenShift部署配置中为/opt/app路径挂载了存储卷(如emptyDir、持久卷),挂载操作会覆盖镜像内该目录下的所有原有内容,导致jar包丢失。 - 构建参数覆盖导致路径异常
若构建镜像时主动传入了APP_HOME、JAR等参数的自定义值,可能导致jar包实际存放路径和ENTRYPOINT执行时的查找路径不匹配。
需要补充的排查信息
- 本地直接启动构建好的镜像是否能正常运行,是否会报相同错误
- OpenShift部署配置中是否存在针对
/opt/app目录的挂载配置 - 执行
oc exec [pod名] ls -l /opt/app的输出结果 - 镜像构建的完整日志内容
内容的提问来源于stack exchange,提问作者Syed Iftekharuddin
相关产品推荐
相关产品推荐

