利用centos7镜像 制作java版 opencv4.1.1 镜像

  1. 首先需要下载centos7镜像并运行

docker pull centos:7.9.2009

docker run -dit --name centos centos:7.9.2009
# 进入容器
docker exec -ti centos bash
  1. 安装依赖包

yum -y install gcc gcc-c++ make openssl ncurses-devel openssl-devel
  1. 需要安装升级cmake

wget https://cmake.org/files/v3.16/cmake-3.16.6.tar.gz
tar -zxf cmake-3.16.6.tar.gz
cd cmake-3.16.6
./configure --prefix=/usr/local/cmake
make && make install
  1. 设置环境变量

vim /etc/profile

export CMAKE_HOME=/usr/local/cmake
export PATH=$PATH:$CMAKE_HOME/bin

source /etc/profile
  1. 安装opencv4.1.1

# 下载地址
https://codeload.github.com/opencv/opencv/tar.gz/refs/tags/4.1.1

tar -zxf opencv-4.1.1.tar.gz
cd opencv-4.1.1

mkdir build
cd build/

#安装编译依赖包
yum install ant

# 编译
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -DBUILD_TESTS=OFF ..
make -j8
make install

# 将编译好的opencv_java411.so等动态库文件copy至容器系统目录下
cp lib/* /usr/lib64/

# 因为我这边需要的jdk是zulu版本
所以自动安装的jdk需要清除
rpm -qa | grep java
yum remove java-1.8.0-openjdk-headless-1.8.0.352.b08-2.el7_9.x86_64 java-1.8.0-openjdk-devel-1.8.0.352.b08-2.el7_9.x86_64 java-1.8.0-openjdk-1.8.0.352.b08-2.el7_9.x86_64
  1. 删除不需要的文件(尽可能的缩小镜像大小)

rm -rf ynu-aps-1.0.0.jar  opencv-4.1.1* cmake-3.16.6*
yum autoremove
  1. 安装jdk环境

# 提前下载好zulu版本的jdk1.8
tar -zxf jdk.tar.gz
cd zulu8.50.0.51-ca-jdk8.0.275-linux_x64/bin

./java -version
mv zulu8.50.0.51-ca-jdk8.0.275-linux_x64/ zulu8-jdk
  1. 设置jdk环境变量

vi /etc/profile

JAVA_HOME=/zulu8-jdk
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export JAVA_HOME JRE_HOME CLASSPATH PATH

source /etc/profile
java -version
  1. 测试

java -jar supervise-1.0.0.jar --spring.profiles.active=test

# 删除不需要的文件数据
rm -rf jdk.tar.gz
rm -rf app-1.0.0.jar supervise-1.0.0.jar
rm -rf supervise/
rm -rf app/

# 再次测试运行情况
java -jar supervise-1.0.0.jar --spring.profiles.active=test
# 发现会有找不到java命令的情况
直接创建软链接
sudo ln -s /zulu8-jdk/bin/java /bin/jar
sudo ln -s /zulu8-jdk/bin/java /bin/java
sudo ln -s /zulu8-jdk/bin/java /bin/javac
sudo ln -s /zulu8-jdk/bin/java /bin/javah
sudo ln -s /zulu8-jdk/bin/java /bin/javadoc
或
ln -s /zulu8-jdk/bin/java /bin/jar
ln -s /zulu8-jdk/bin/java /bin/java
ln -s /zulu8-jdk/bin/java /bin/javac
ln -s /zulu8-jdk/bin/java /bin/javah
ln -s /zulu8-jdk/bin/java /bin/javadoc
# 完美
  1. 保存我们制作好的镜像

docker ps -a 查看运行的centos镜像,复制镜像ID
利用centos7镜像 制作java版 opencv4.1.1 镜像_第1张图片
docker commit cecea9192b63 centos7-opencv411:v7.9-5
  1. 以下就是我们的opencv镜像

[gestep@devops ~]$ docker images | grep opencv
centos7-opencv411                v7.9-5            03dc067d74ce   10 days ago     1.28GB

你可能感兴趣的:(linux,运维,服务器,java,docker)