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

相关推荐
171320330计算机毕设编程几秒前
计算机毕业设计 基于YOLO改进算法的车辆特征识别系统设计与实现--lw
java·大数据·python·sql·算法
Web极客码1 分钟前
Python Ollama 本地 Agent 入门与订单查询实践
开发语言·jvm·python
badhope14 分钟前
Spring AI Alibaba停更:Java程序员的信任,还能被辜负几次?
java·spring
const_qiu21 分钟前
第一章 1.1-1.2:基础模型调用与 TypeScript 入门 —— Java 开发者的视角
java·javascript·typescript
Wang's Blog26 分钟前
Java 项目实战: 交友项目 - Dubbo 负载均衡策略与实战验证
java·dubbo·交友
SL_staff30 分钟前
销售知识库7天落地实践:面向业务侧的零代码嵌入方案
java·开源·产品
kimnoic32 分钟前
PHP 8.2的DNF类型怎么用才规范
开发语言·php
GreatSQL社区39 分钟前
主从复制SQL线程中断——字符集砸出的坑
java·数据库·算法
郭老二1 小时前
【docker】docker compose使用,已nginx为例
nginx·docker·容器
_Evan_Yao1 小时前
前后端联调怎么排查问题?从 Network 到后端日志,一步步定位错误
开发语言·后端·团队开发·需求分析