docker 构建遇见的问题一记

这两天项目里需要使用opencv的库,springboot需要添加opencv,最终确认使用已有的docker4.6+jdk1.8进行改写,首先想到的就是直接将1.8卸载,安装上17,之后再打包,发布到dockerhub上,之后docker-compose下载使用。

开始操作,在oracle官网上下载了jdk17,上传至服务器,解压,配置环境变量,java -version一切正常,commit后再次输入java -version发现没有java,打印环境变量发现没有java17路径,出现了第一个问题。

感觉应该是环境变量在docker重启时被冲掉了,查了一下说是要在./root/.bashrc下配置,但这种配置只对root用户生效,考虑发现没有问题,因为我们用的就是root启动的docker,打包, 启动docker,发现没有问题。

接着搞。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

上传到dockerhub上,使用docker-compose构建,出现问题,提示如下错误。

Java Runtime (class file version 61.0), this version of the Java Runtime only ...55.0

使用docker run单独跑容器,发现没有问题,接着仔细检查发现是home文件夹挂载问题。我的jdk文件夹是放在home目录下的,然后home挂在了其他内容把jdk文件夹覆盖了,于是没有jdk17了,但是为什么会出现55呢?

55对用的是java11,仔细检查,发现系统自带了openjdk11,于是将其卸载掉,再次打包上传至dockerhub,再次拉取,再次报错,提示的是python报错,没有图了。

仔细检查报错信息,发现是启动时执行java -jar时报错了,因为没有java环境,为什么呀?我已经部署了java17呀,而且单独run这个镜像没有问题,后来仔细查了一下发现需要使用dockerfile

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

于是使用Dockerfile构建容器在里面创建文件夹,上传jdk安装包,是个压缩包(会自动解压)。设置环境变量。docker构建完成直接上传至dockerhub,拉取验证,没有问题了。。

posted @ 2024-01-25 09:32  买卖与杀害  阅读(2)  评论(0编辑  收藏  举报