libreOffice构建docker镜像,并基于此运行项目

这篇具有很好参考价值的文章主要介绍了libreOffice构建docker镜像,并基于此运行项目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、libreOffice构建docker镜像,并启动项目
  1. 安装包准备

    • LibreOffice(v7.4.2): LibreOffice_7.4.2_Linux_x86-64_rpm.tar.gz
    • LibreOffice-langpack:(v7.4.2): LibreOffice_7.4.2_Linux_x86-64_rpm_langpack_zh-CN.tar.gz
    • jdk-8u202-linux-x64.tar.gz
    • 打包windows字体包(C:\Windows\Fonts\,搜索中文):fonts.tar.gz
  2. Dockerfile编写

    #基于centos7版本镜像
    FROM centos:7
    
    #以下设置中文语言环境与修改时区
    ENV LANG=zh_CN.UTF-8 \
    	LANGUAGE=zh_CN:zh \
    	LC_ALL=zh_CN.UTF-8
    RUN yum update -y && \
    	yum reinstall -y glibc-common && \
    	yum install -y telnet net-tools && \
    	yum clean all && \
    	rm -rf /tmp/* rm -rf /var/cache/yum/* && \
    	localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8 && \
    	ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    
    #加入windows字体包
    ADD fonts.tar.gz /usr/share/fonts/
    
    #将下载好的包解压到相应文件下
    ADD LibreOffice_7.4.2_Linux_x86-64_rpm.tar.gz /home/
    ADD LibreOffice_7.4.2_Linux_x86-64_rpm_langpack_zh-CN.tar.gz /usr/
    
    #执行安装 注意解压后的名字跟压缩包的会不一样
    RUN cd /home/LibreOffice_7.4.2.3_Linux_x86-64_rpm/RPMS/ \
    	&& yum localinstall *.rpm -y \
    	&& cd /usr/LibreOffice_7.4.2.3_Linux_x86-64_rpm_langpack_zh-CN/RPMS/   \
    	&& yum localinstall *.rpm -y \
    
    	#安装依赖
    	&& yum install ibus -y \
    
    	#加入中文字体支持并赋权限
    	&& cd /usr/share/fonts/ \
    	&& chmod -R 755 /usr/share/fonts \
    	&& yum install mkfontscale -y \
    	&& mkfontscale \
    	&& yum install fontconfig -y \
    	&& mkfontdir \
    	&& fc-cache -fv \
    	&& mkdir /usr/local/java/ \
    
    	#清理缓存,减少镜像大小
    	&& yum clean all
    
    #加入安装java环境
    ADD jdk-8u202-linux-x64.tar.gz /usr/local/java/
    RUN ln -s /usr/local/java/jdk1.8.0_202/usr/local/java/jdk
    
    #配置环境变量
    ENV JAVA_HOME /usr/local/java/jdk
    ENV JRE_HOME ${JAVA_HOME}/jre
    ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib
    ENV PATH ${JAVA_HOME}/bin:$PATH
    
    #暴露端口
    EXPOSE 8100
    
    #运行
    RUN cd /opt/libreoffice7.4/ \
    && program/soffice  --headless --accept="socket,host=0.0.0.0,port=8100;urp;" --nofirststartwizard &
    
    CMD ["bash"]
    
  3. 构建镜像

    docker run --name libreoffice -v /opt/workingdir:/opt/libreoffice7.4/workingdir -p 8100:8100 -itd libreoffice:0.0.1
    
  4. 启动项目

    docker run --name api-test --network net \
        -p 8038:80 \
        -v /var/run/docker.sock:/var/run/docker.sock \
        -v /usr/bin/docker:/usr/bin/docker \
        -v /usr/local/docker/oa-api/ROOT.jar:/usr/ROOT.jar \
        -v /usr/local/docker/oa-api/logging:/usr/logging \
        -v /opt/workingdir:/opt/workingdir \
        -e TZ="Asia/Shanghai" \
        -d java java -jar /usr/ROOT.jar \
        --jodconverter.working-dir="/opt/workingdir"
    
二、代码
  1. 使用代码进入libreoffice容器转换文件

    • 引用路径

      // 引用路径
      @Value("${jodconverter.working-dir}")
      private String workingDir;
      
    • 转换文件文章来源地址https://www.toymoban.com/news/detail-594548.html

      File sourceFile = new File(workingDir);
      					if(!sourceFile.exists()) {
      						sourceFile.mkdirs();
      					}
      					IOUtils.copy(inputStream, new FileOutputStream(new File(workingDir + File.separator + prefix + "." + suffix)));
      		        	String command = "docker exec libreoffice /opt/libreoffice7.4/program/soffice --convert-to pdf:writer_pdf_Export /opt/libreoffice7.4/workingdir/" + prefix + "." + suffix + " --outdir /opt/libreoffice7.4/workingdir";
      		        	boolean result = executeCommand(command);
      		        	if(result) {
      		        		IOUtils.copy(new FileInputStream(new File(workingDir + File.separator + prefix + "." + "pdf")), outputStream);
      		        	}
      
      public static boolean executeCommand(String command) {
      		Process process;
      		try {
      			process = Runtime.getRuntime().exec(command);
      			process.waitFor();
      		} catch (Exception e) {
      			e.printStackTrace();
      			return false;
      		}
      		process.destroy();
      		return true;
      	}
      

到了这里,关于libreOffice构建docker镜像,并基于此运行项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux之libreoffice安装

      LibreOffice 是一款开放源代码的自由免费全能办公软件,可运行于 Microsoft Windows, GNU/Linux 以及 macOS 等操作系统上。它包含了 Writer, Calc, Impress, Draw, Math 以及 Base 等组件,可分别用于文本文档、电子表格、幻灯片演示文稿、绘图文档、数学公式编辑、数据库管理等工作。Lib

    2024年02月08日
    浏览(34)
  • libreoffice api

    libreOffice API是用于访问libreOffice的编程接口。可以使用libreOffice API创建、打开、修改和打印libreOffice文档。 LibreOffice API支持Basic、Java、C/C++、Javascript、Python语言。 这是通过一种称为通用网络对象 (Universal Network Objects, UNO) 的技术实现的,该技术可以为各种编程语言提供接口。

    2024年02月02日
    浏览(22)
  • Ubuntu中删除LibreOffice方法

    目录 删除LibreOffice套件 删除所有与LibreOffice相关的软件包 删除与LibreOffice相关的配置文件 删除LibreOffice套件 1、打开终端。您可以使用快捷键 Ctrl + Alt + T 来打开终端。 2、输入以下命令以卸载LibreOffice套件: 删除所有与LibreOffice相关的软件包 1、系统可能会要求您输入管理员密

    2024年02月13日
    浏览(35)
  • Linux下编译LibreOffice在线编辑

    LibreOffice本身是没有在线编辑的功能,如果要编译LibreOffice在线编辑,需要编译另外一套源码CollaboraOnline,CollaboraOnline是基于LibreOffice为核心构建的文档在线编辑,编辑步骤参考以下内容: Linux系统版本:Ubantu20.04 CollaboraOnline源码分支:distro/collabora/co-22-05 打开shell命令窗口,执

    2024年02月09日
    浏览(37)
  • ubuntu彻底卸载libreoffice和安装wps

    1. 打开ubuntu桌面,右键  打开终端 方法一  完全卸载 根据提示输入管理员密码,然后根据提示 输入  Y  这样,等待卸载完成。 正常情况下上述命令执行完成后Libreffice的表格、绘图、文本、幻灯片等等全都会被卸载掉,同时相关快捷方式也会消失。 方法二  分部卸载 如果

    2024年02月13日
    浏览(36)
  • Linux aarch64架构libreoffice安装使用

    libreoffice安装包 tar -zxvf LibreOffice-7.1.tar.gz cd LibreOffice-7.1LibreOfficeDev-7.1-Linux-aarch64-rpmRPMS rpm -Uivh *.rpm --nodeps cd LibreOffice-7.1LibreOfficeDev-7.1-Linux-aarch64-rpm-langpack_zh-CNRPMS rpm -Uivh *.rpm --nodeps cd /opt/libreofficedev7.1/program /opt/libreofficedev7.1/program/oosplash --convert-to html /data/test.doc --outdir /da

    2024年02月07日
    浏览(60)
  • 使用LibreOffice的Draw取代Microsoft visio

    使用开源的LibreOffice的Draw工具取代visio 在绘制网络拓扑图的时候需要用到一些网络图库: 下载cisco图库,并添加图库 下载VRT插件,并添加插件 下载地址 Network Topology Icons 打开LibreOffice,点击工具栏 [视图], 点击 [图库], 点击 [新建] 添加一个自定义图库,将下载的cisco图库添

    2024年02月05日
    浏览(37)
  • Linux环境Libreoffice实现Word、Excel等在线预览

    目录 转PDF 一、Linux安装libreoffice 二、Java代码实现 这里介绍的是在linux环境(windows环境类似)下实现讲word、Excel、ppt、txt以及png图片转换为PDF文件后实现的预览。由于需要转换为PDF文件, 当Excel表格太大太宽的时候,可能出现换页等格式被破坏的情况。 从官网下载对应版本的

    2024年02月08日
    浏览(51)
  • libreoffice 7 ( arm64 ubuntu20.04 环境) 源码编译

    基础环境 cpu os docker Dockerfile

    2024年02月13日
    浏览(61)
  • 使用Openoffice或LibreOffice实现World、Excel、PPTX在线预览

    有三方服务提供了在线预览文档的功能,可以将文件上传到这些服务,然后嵌入其提供的预览组件到你的网页中。常用的服务包括 Google Docs、Microsoft Office Online 和 Adobe Document Cloud。 1.调用微软的在线预览功能实现 2.调用google的文档在线预览实现 3.调用XDOC文档预览服务 XDOC文档

    2024年02月13日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包