weixin_48391393 2023-05-26 17:55 采纳率: 0%
浏览 126
已结题

docker部署jar,需要matlab runtime环境

项目中使用到了matlab生成的jar,需要采用docker形式部署,涉及到matlab运行环境matlab runtime。
试过windows和linux安装matlab runtime环境后直接运行jar程序都可以正常使用,是项目没有问题的。
现在情况是打成docker镜像启动后项目执行失败,原因是没有matlab的运行环境。
试过docker exec进入镜像中安装matlab runtime,和在构建镜像时进行安装都无法正常安装。
matlab runtime版本2021a。jdk1.8

  • 写回答

9条回答 默认 最新

  • PhoenixRiser 2023-05-26 23:41
    关注
    获得1.50元问题酬金

    TechWhizKid参考GPT回答:

    • 在Docker中运行MATLAB Runtime环境,要在Dockerfile中构建这个环境。这是一个可能的Dockerfile,可以用于安装MATLAB Runtime和运行你的jar文件。你可能要根据你的实际情况对以下的Dockerfile进行一些修改。
    • 假设你已经把MATLAB Runtime安装器(版本为2021a)下载到了你的项目目录,文件名为MCR_R2021a_glnxa64_installer.zip,并且你的jar文件叫做my_project.jar

    Dockerfile可能如下:

    FROM openjdk:8
    
    WORKDIR /app
    
    # 将 MATLAB Runtime 安装程序复制到 Docker 镜像中
    COPY MCR_R2021a_glnxa64_installer.zip /app/
    
    # 安装 MATLAB Runtime 需要的额外库
    RUN apt-get update && apt-get install -y \
        unzip \
        xorg \
        libxt6 \
        libxmu6 \
        libXp6 \
        libXpm4 \
        libXmu6 \
        libXt6 \
        libXext6 \
        libXp6 \
        libXpm4 \
        && rm -rf /var/lib/apt/lists/*
    
    # 解压缩安装程序
    RUN unzip MCR_R2021a_glnxa64_installer.zip
    
    # 运行安装程序
    RUN ./install -mode silent -agreeToLicense yes
    
    # 删除安装程序以节省 Docker 镜像的空间
    RUN rm -rf MCR_R2021a_glnxa64_installer.zip install
    
    # 设置 MATLAB Runtime 路径
    ENV LD_LIBRARY_PATH=/usr/local/MATLAB/MATLAB_Runtime/v910/runtime/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v910/bin/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v910/sys/os/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/v910/extern/bin/glnxa64
    
    # 将您的 jar 文件复制到 Docker 镜像中
    COPY my_project.jar /app/
    
    CMD ["java", "-jar", "my_project.jar"]
    
    • 这个Dockerfile首先基于OpenJDK 8创建一个新的Docker镜像。然后它将MATLAB Runtime安装器复制到Docker镜像并安装它。它还安装了一些MATLAB Runtime要的额外库。然后它设置了MATLAB Runtime的路径,最后运行你的jar文件。
    • 因为MATLAB Runtime和其所需的库占用了一定的空间,所以最后构建出来的Docker镜像可能会比较大。你可能要在你的Docker配置中分配更多的磁盘空间。
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 6月3日
  • 赞助了问题酬金50元 5月26日
  • 创建了问题 5月26日

悬赏问题

  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址
  • ¥15 elmos524.33 eeprom的读写问题
  • ¥15 用ADS设计一款的射频功率放大器
  • ¥15 怎么求交点连线的理论解?