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

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

1、项目打包

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

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

bash 复制代码
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镜像

bash 复制代码
# 基础镜像
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/bin

ENV CLASSPATH=.:%JAVA_HOME%/lib/dt.jar:%JAVA_HOME%/lib/tools.jar
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/share/java

ENV SERVER_PORT=8082
# 暴露端口
EXPOSE ${SERVER_PORT}

# 启动应用
ENTRYPOINT ["java","-jar","sa-admin.jar"]

5、编译镜像

bash 复制代码
docker build -t sa-serverapp:1.0 .

6、运行镜像服务

bash 复制代码
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 中运行。

相关推荐
咖啡八杯18 分钟前
GoF设计模式——解释器模式
java·后端·spring·设计模式
优橙教育31 分钟前
5G网优培训 vs Java开发:转行选哪个?
java·开发语言·5g
腻害兔2 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:字典、短信、邮件、通知——后台系统的“基础设施四件套“!
java·前端·vue.js·产品经理·ai编程
SeaTunnel2 小时前
从 Python Script 地狱到标准化数据集成框架
大数据·开发语言·python·程序员·代码·seatunnel
碎光拾影3 小时前
ARM交叉工具链各工具作用及IMX6ULL平台LED+蜂鸣器裸机程序实现
java·开发语言·数据库
Marst Code3 小时前
(python)2026Plotly 库评估:交互式可视化到底值不值得引入?
开发语言·python
Miao121314 小时前
微服务 API 测试实践:海外某民宿平台如何构建模式驱动测试基础设施
java·开发语言
腻害兔4 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:支付模块 yudao-module-pay,一个让产品经理都看懂的支付中台设计
java·前端·vue.js·产品经理·ai编程
CRMEB系统商城5 小时前
开源自建还是SaaS订阅?算一笔3年经济账
java·大数据·开发语言·开源
BullSmall6 小时前
Anolis OS 8.10 完整安装 Docker CE(生产可用,解决 podman 冲突)
docker·容器·podman