制作opencv+jdk8容器镜像

前言

  之前使用opencv实现了获取湖泊轮廓,在打包到线上服务器时出现了问题.本来打算自己写一套不使用opencv的代码,但是效果不理想.无奈还是只能继续寻找使用opencv的解决方案.在过程中发现服务器使用了docker普通的安装不起作用.最终只能使用这版解决方案,为避免下次踩坑,写下这篇博文留给有缘人

准备工作

1.创建一个文件夹存放下载下来的cmake(版本要在3.25以上)及opencv的安装包

2.一个可以使用的dockerhub账号或安装harbor私有镜像仓库

mkdir /chen/zip

首先编写一个Dockerfile文件,如下

FROM openjdk:8
COPY ./zip /chen/zip

开始制作

进入文件所在文件夹以进入容器内部的方式运行

#docker run -it --entrypoint=/bin/bash 名称自定义:版本自定义 . 
docker run -it --entrypoint=/bin/bash openj8:1 . 

此步骤只要您的java服务不是使用容器运行的不在容器内部也可使用

进入/chen/zip文件夹,可以看到之前放在容器外部的opencv及cmake的安装包(如果没有请查看Dockerfile 里的COPY ./zip /chen/zip路径是否正确)

cd /chen/zip
ls

安装cmake编译安装所需环境

sudo apt update  
#gcc编译器
sudo apt install build-essential
#openssl
sudo apt install libssl-dev

 安装cmake

#解压文件
tar -zxvf cmake-3.29.0-rc3.tar.gz
#进入文件夹
cd cmake-3.29.0-rc3
#预编译
./bootstrap
#编译(-j4的数字可以修改为任意数组,根据你的服务器性能自己定义)
make -j4
#安装
make install
#查看版本信息
cmake --version

 安装opencv

#安装编译安装opencv的运行环境
apt update  
apt install build-essential cmake libgtk2.0-dev pkg-config  
apt install libavcodec-dev libavformat-dev libswscale-dev  
apt install libv4l-dev libxvidcore-dev libx264-dev  
apt install libjpeg-dev libpng-dev libtiff-dev  
apt install libeigen3-dev libtbb-dev libdc1394-22-dev
#必须安装,不安装无法生成java所需要的文件
apt install ant
#进入opencv安装包所在文件夹
cd /chen/zip
#解压文件
tar -zxvf opencv-4.6.0.tar.gz
#进入文件夹
cd opencv-4.6.0
#创建build文件并进入
mkdir build && cd build
#生成可执行文件
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

执行完成后如下 (俩个java不为yes就是存在问题,检查javac是否可以使用,ant -version是否正常)

继续安装

#编译(同安装cmake)
make -j4
#安装
make install
#查看版本
opencv_version
#复制so文件到指定路径
cp /usr/local/share/java/opencv4/libopencv_java460.so /usr/lib/
#退出容器
exit

提交镜像

#找到你编辑的容器id
docker ps -a
#提交镜像到本地(docker commit 你的容器id openj8:2)
docker commit 5291f55987f0 openj8:4.6.0
#登陆你的dockerhub账号
docker login -u xx -p xx xx-docker.pkg.coding.net
#推送镜像
docker push openj8:4.6.0

修改你的java服务dockerfile引用openjdk8环境为你制作的镜像运行即可

 

  • 12
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值