当前位置: 首页 > backend >正文

Java spingboot项目 在docker运行,需要含GDAL的JDK

在一个springboot项目中,打包成jar后,需要在docker中运行!但是需要含有gdal的jdk,如何在虚拟环境中运行,保证这两个内容都有,具体实现如下:

1、项目打包

把springboot项目打包成JAR包。上传到Linux机器中,这里以这个位置举例:/home/soft/app/serverapp/jar

如果没有创建 可以使用命令创建:

mkdir -p /home/soft/app/serverapp/jar

然后把项目包放到jar目录下 

2、下载gdal镜像

已测试可用下载地址:https://download.csdn.net/download/qq_43544074/90918962

可直接下载使用,是不需要积分的! 

其他下载地址:Links for GDAL

3、下载JDK的压缩包(以JDK17举例)

下载地址:Java Download | Java 8, Java 11, Java 17, Java 21, Java 24 - OpenJDK Builds for Linux, Windows & macOS

下载包后上传到Linux中,这里以这个位置举例:/home/soft/app/serverapp

4、编写dockerfile文件内容

示例如下:其中 下面的 FROM gdal:3.8.5 就是上面下载的GDAL镜像

# 基础镜像
FROM gdal:3.8.5# 设置维护者信息
LABEL maintainer="ATB" \version="1.0" \description="Docker image for sa-admin Spring Boot application"# 创建必要目录(logs、文件目录等)
RUN mkdir -p /home/soft/app/serverapp/logs \/home/soft/app/serverapp/temp \/home/soft/app/serverapp/uploadPath \/usr/local/java \/home/soft/app/serverapp/skywalking/agent# jdk-17
COPY bellsoft-jdk17.0.15_10-linux-amd64-full.tar.gz  /home/soft/app/serverapp/# 设置工作目录
WORKDIR /home/soft/app/serverapp# 解压压缩包到目标目录
RUN tar -xzvf /home/soft/app/serverapp/bellsoft-jdk17.0.15_10-linux-amd64-full.tar.gz -C /usr/local/java && \rm /home/soft/app/serverapp/bellsoft-jdk17.0.15_10-linux-amd64-full.tar.gz# 拷贝 Spring Boot jar 包和 config 配置(可选)
COPY ./jar/sa-admin.jar ./sa-admin.jar
# COPY ./jar/config ./config# 设置环境变量
ENV JAVA_HOME=/usr/local/java/jdk-17.0.15-full
ENV PATH=$PATH:$JAVA_HOME/binENV CLASSPATH=.:%JAVA_HOME%/lib/dt.jar:%JAVA_HOME%/lib/tools.jar
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/share/javaENV SERVER_PORT=8082
# 暴露端口
EXPOSE ${SERVER_PORT}# 启动应用
ENTRYPOINT ["java","-jar","sa-admin.jar"]

5、编译镜像

docker build -t sa-serverapp:1.0 .

6、运行镜像服务

docker run -d --name sa-serverapp1 \-p 8082:8082 \-v /home/soft/app/serverapp/logs:/home/soft/app/serverapp/logs \-v /home/soft/app/serverapp/temp:/home/soft/app/serverapp/temp \-v /home/soft/app/serverapp/uploadPath:/home/soft/app/serverapp/uploadPath \sa-serverapp:1.0

可以查询日志:docker logs sa-serverapp1    实时日志:docker logs -f sa-serverapp1

停止服务:docker stop sa-serverapp1           开启服务:docker start sa-serverapp1

删除服务:docker rm sa-serverapp1              查看进行:docker ps    或者 docker ps -a

至此就可以运行一个springboot的项目,然后在包含GDAL的JDK 中运行。

http://www.xdnf.cn/news/9256.html

相关文章:

  • 飞牛fnNAS手机相册备份及AI搜图
  • 博图SCL基础知识-表达式及赋值运算
  • 甲醇 燃料 不也有碳排放吗?【AI回答版】
  • 得物Java开发面试题及参考答案(下)
  • Linux操作系统概述
  • 【Canvas与日月星辰】烈日当空
  • 关于git的使用
  • 【漏洞与预防】Microsoft Windows 文件资源管理器欺骗漏洞预防
  • 【免费】【无需登录/关注】Base64 图片转换工具网页
  • 【Java】DelayQueue
  • LangGraph(七)——Workflows
  • 基于物联网(IoT)的电动汽车(EVs)智能诊断
  • Java组合、聚合与关联:核心区别解析
  • AWS WebRTC:获取信令服务节点和ICE服务节点
  • 深度解读 Qwen3 大语言模型的关键技术
  • 【Elasticsearch】ingest对于update操作起作用吗?
  • Android15 Camera Hal设置logLevel控制日志输出
  • vue2使用el-tree实现两棵树间节点的拖拽复制
  • LeetCode 2894.分类求和并作差:数学O(1)一行解决
  • Java提取markdown中的表格
  • go并发与锁之sync.Mutex入门
  • 国11阶乘约数-质因数分解
  • C/C++的OpenCV的锐化
  • vue 前端请求跨域解决办法
  • 九级融智台阶与五大要素协同的量子化解析
  • MGAug:图像变形潜空间中的多模态几何增强|文献速递-深度学习医疗AI最新文献
  • 端口 3389 服务 ms - wbt - server 漏洞修复方法
  • 你的网站真的安全吗?如何防止网站被攻击?
  • 联软科技统一安全工作空间:零信任架构下的远程办公数据安全守护者
  • 每天掌握一个Linux命令 - sqlite3