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 中运行。

相关推荐
二哈赛车手6 小时前
新人笔记---ApiFox的一些常见使用出错
java·笔记·spring
为何创造硅基生物7 小时前
C语言 结构体内存对齐规则(通俗易懂版)
c语言·开发语言
吃好睡好便好7 小时前
在Matlab中绘制横直方图
开发语言·学习·算法·matlab
栗子~~7 小时前
JAVA - 二层缓存设计(本地缓冲+redis缓冲+广播所有本地缓冲失效) demo
java·redis·缓存
星寂樱易李7 小时前
iperf3 + Python-- 网络带宽、网速、网络稳定性
开发语言·网络·python
YDS8297 小时前
DeepSeek RAG&MCP + Agent智能体项目 —— RAG知识库的搭建和接口实现
java·ai·springboot·agent·rag·deepseek
仰泳之鹅8 小时前
【C语言】自定义数据类型2——联合体与枚举
c语言·开发语言·算法
之歆8 小时前
DAY_12JavaScript DOM 完全指南(二):实战与性能篇
开发语言·前端·javascript·ecmascript
未若君雅裁9 小时前
MyBatis 一级缓存、二级缓存与清理机制
java·缓存·mybatis
cen__y9 小时前
Linux12(Git01)
linux·运维·服务器·c语言·开发语言·git