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

相关推荐
ChaHae-In16 分钟前
SpringBoot统一功能处理
java·spring boot·后端
InfinitePlus40 分钟前
Docker MySQL搭建一主一从
mysql·docker
coder!mq44 分钟前
说几个常见的语法糖?
java·开发语言·算法
gugucoding1 小时前
38. 【Java】Stream API(下):高级操作与性能
java·开发语言
Lhan.zzZ1 小时前
在 Visual Studio 2022 中打造可扩展的动态链接库模块:从零搭建到原理解析
开发语言·c++·visual studio
心平气和量大福大1 小时前
android-实例-蒲公英-更新与安装-5-签名与生成APK
android·java·开发语言
码哥DFS1 小时前
构造函数、实例对象、对象原型 ----三者关系
开发语言·javascript·原型模式
952362 小时前
Spring-cloud配置中心
java·spring·spring cloud·微服务
quantdash_cc2 小时前
告别自建 Requests/BS4 网页爬虫:基于 QuantDash 搭建零维保的高性能量化行情流水线
开发语言·爬虫·python·pandas·量化·quantdash
ydd1001002 小时前
寻找两个正序数组的中位数 Java 题解,二分分割详解
java·开发语言