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

相关推荐
考虑考虑2 小时前
Mybatis实现批量插入
java·后端·mybatis
咖啡八杯2 小时前
GoF设计模式——中介者模式
java·后端·spring·设计模式
青石路6 小时前
记一次多JDK版本问题的排查,一坑套一坑,差点没爬上来
java
像我这样帅的人丶你还9 小时前
Java 后端详解(五):Redis 缓存
java·后端·全栈
plainGeekDev11 小时前
GreenDAO → Room
android·java·kotlin
lichenyang45316 小时前
Docker 学习笔记(五):Docker Compose,用一个 YAML 启动前端、后端和 MongoDB
docker
lichenyang45316 小时前
Docker 学习笔记(四):Dockerfile,把项目打成自己的镜像
docker·容器
lichenyang45316 小时前
Docker 学习笔记(三):Docker 网络、bridge、子网和容器互通
docker·容器
lichenyang45316 小时前
Docker 学习笔记(二):docker run 的参数到底在控制什么?
docker·容器
亦暖筑序16 小时前
Java 8老系统AI Workflow实战:把一次性AI对话升级成可恢复工作流
java·后端