首页 > 其他分享 >制作opencv+jdk8容器镜像

制作opencv+jdk8容器镜像

时间:2024-03-18 15:29:26浏览次数:21  
标签:cmake apt opencv jdk8 dev install 镜像 docker

前言

  之前使用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环境为你制作的镜像运行即可

 

标签:cmake,apt,opencv,jdk8,dev,install,镜像,docker
From: https://blog.csdn.net/weixin_49180783/article/details/136802546

相关文章

  • Docker 最常用的镜像命令和容器命令
    目录一、帮助命令二、运行第一个容器:hello-world2.1运行命令2.2命令执行流程图三、镜像相关命令及其基本操作3.1登录私有镜像仓库3.2拉取镜像3.3查看镜像基本信息3.3.1dockerimages命令查看镜像基本信息(一)、dockerimages命令常用选项-a:显示所有的镜像(包括临时镜像文......
  • 处理K8S镜像无法拉取问题
    问题原因国内无法直接访问镜像地址,改为国内地址即可#!/bin/bash#downloadk8s1.28.8images#getimage-listby'kubeadmconfigimageslist--kubernetes-version=v1.15.2'#gcr.azk8s.cn/google-containers==k8s.gcr.ioimages=(kube-apiserver:v1.28.8kube-contr......
  • opencv 人脸识别简单尝试
    opencv人脸识别简单尝试闲来无事,尝试着按照网上的教程和代码来实现简单的人脸识别 参考:基于OpenCv的人脸识别(Python完整代码)-CSDN博客 以下为快速配置 (具体的过程请参阅参考链接所提供的原文章) 1、环境搭建实验环境:python3.6+opencv-python3.4.14.51建......
  • 镜像制作实战篇
    “ 在失控边缘冲杀为,最终解脱”CMD与EntryPoint实战    EntryPoint与CMD都是docker镜像制作中的一条命令,它们在概念上可能有些相似,但在使用中,两者是有明显的区别的。比如,执行一个没有调用EntryPoint、CMD的容器会返回错误,这两条命令一般都作为容器启动的入口命......
  • opencv读取视频采集卡帧-调整分辨率
    VideoCapturecapture;capture.open(0,CAP_DSHOW); capture.set(CAP_PROP_FRAME_WIDTH,1920); capture.set(CAP_PROP_FRAME_HEIGHT,1080); MatmatFrame; capture.read(matFrame); capture.release();imshow("ShowFrame",matFrame);1-......
  • conda安装tidyverse过程记录(包含R镜像问题总结)-暂存待更新
    1.使用conda安装tidyversecondainstall-cconda-forger-tidyverse2.安装后R版本较旧,conda版本新安装的tidyverse较新,启动后导致tidyverse的许多依赖包版本冲突。解决问题过程中涉及R包的卸载,安装,镜像设置和重新安装加载等过程。常用代码总结包括:remove.packages('purrr......
  • 5 分钟小工具:使用 dive 分析 docker 镜像
    需求拿到一个镜像之后,我想知道:分层查看镜像里都有哪些文件各层使用了什么命令构建的这个镜像镜像里比较大的文件有哪些(可能需要优化)dive工具介绍dive工具可以做这些分析。dive的github地址是 wagoodman/dive,小巧玲珑,MIT开源协议,42.9k的star。它的介绍是这么一......
  • openCV打开高清摄像头卡顿的问题
    cv2.VideoCapture(camera_number+cv2.CAP_DSHOW)是OpenCV在Windows平台下用于指定使用DirectShow作为视频捕获后端的一种方式。这里的cv2.CAP_DSHOW是一个常量,表示使用DirectShow(DirectXShow)技术来访问和控制摄像头。cv2.CAP_DSHOW参数含义:当你将cv2.CAP_DSHOW与摄像头......
  • docker释放镜像后虚拟磁盘不减小
    在使用dockersytemprume指令清理了docker当前的所有镜像和容器后,docker的虚拟磁盘ext4.vhdx所占用的空间一点也没有减少。使用dockersystemdf指令查看,能清理的都已经清理了。查阅资料后才发现,由于我安装docker时是基于wsl而不是hyper-V导致了这个问题的出现。wsl2是虚拟机,......
  • ChatGPT国内镜像站大全
    #今天在知乎看到一个问题:“平民不参与内测的话没有账号还有机会使用ChatGPT吗?”从去年GPT大火到现在,关于GPT的消息铺天盖地,真要有心想要去用,途径很多,别的不说,国内GPT的镜像站到处都是,3.5的免费站也很多,只是有的需要关注,有的提供了打赏的方式。分享几个自用的镜像站给大家吧......