【Docker】使用docker制作libreoffice镜像并解决中文乱码问题
1、默认官方的centos镜像不支持中文,比如touch一个包含中文名字的文件,文件名会显示???.doc
2、libreoffice 安装及测试
我的Dockerfile文件内容如下:
FROM centos # 镜像源,这里使用的是centos MAINTAINER "shilin@datahorizon.cn" # 维护人信息,可删去 RUN yum install libreoffice-writer.x86_64 -y \ && yum groupinstall "Fonts" -y \ && yum groupinstall "Input Methods" -y \ # 上面三条指令是安装libreoffice程序及支持字体 && rm -rf /etc/localtime \ && ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && yum -y install kde-l10n-Chinese \ && yum -y reinstall glibc-common && localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 \ # 这几条是添加中文支持 && yum clean all # 最后清理yum缓存 ENV LC_ALL zh_CN.utf8 # 设置中文支持环境
新建一个空白文件夹,名字随意,将 Dockerfile 移到这里,然后执行
- docker build -t libreoffice:01 .
等待执行完成,查看当前拥有的镜像,执行
- docker images
结果
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
libreoffice 01 caaa911e050a 16 minutes ago 1.122 GB
之后进行测试,首先挂载数据卷进入容器
- docker run -it -v ~/file_dir/:/data libreoffice:01 bash
这里file_dir是要转换文件所在目录,然后进行转换
- soffice --headless --convert-to txt 测试.doc
转换完的文件名为 测试.txt ,然后cat 查看内容即可