Docker下alpine镜像安装Latex工具心得

1,452 阅读2分钟

前言

在近期的项目中,需要在Confluence平台内搭建Latex工具,来实现数学公式的编写和渲染等功能。不同于其他基于java的封闭plugin包,Confluence的Latex-plugin是需要依赖server端本地的latex和dvipng工具才能进行页面内的渲染的。如果是通常情况下,这个问题很好解决,但是实验室的Confluence是通过docker images直接起的,并且这个image的基底kernel是alpine这个可以称得上是裸kernel的发行版。所以通常的安装没办法进行了,于是只能动手编译撸一遍。

过程

一、说明

因为confluence容器所依托的linux基底是alpine,一个非常轻量几乎没有任何依赖和包的linux裸核心,所以在alpine上配置latex和dvipng会比较麻烦一点。

二、组件和依赖安装

2.1 用root用户进入confluence容器的bash界面
docker exec -it -u root confluence bash
2.2 安装编译器
apk add gcc
apk add g++
2.3 安装latex(texlive)全部组件
apk add texlive-20170524-r6
apk add texlive-xetex-20170524-r6
apk add texmf-dist-latexextra-2018.48566-r0
apk add texlive-dvi-20170524-r6
apk add texlive-full-20170524-r6
apk add texlive-dev-20170524-r6
2.4 编译安装dvipng
  • 前往官网下载dvipng的包:www.ctan.org/pkg/dvipng
  • 根据编译包内README的说明根据如下步骤进行编译安装:
./configure autoconf --enable-selfauto-set
make (如果有报错,make test或者根据报错提示修复)
make install
2.5 验证安装
  • 在临时文件夹中创建一个文件: touch simple.tex
  • 在文件中添加如下内容:
\documentclass[12pt]{article}
\usepackage{a4}
\begin{document}
\( E=mc^{2} \)
\end{document}
  • 然后运行如下内容,如果成功生成了png文件,则表示组件安装运行正常:
latex simple.tex
dvipng simple.dvi
2.6 在$CONFLUENCE_HOME_DIR下面创建一个latex文件夹,并且创建三个配置文件:
  • latex.properties:
# Specify a comma separated list of parameters to pass to the dvipng process.
dvipng.parameters=-T;tight;-bg;transparent
  • latexfooter.tex:
\end{document}
  • latexheader.tex:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{bm}
\newcommand{\mx}[1]{\mathbf{\bm{#1}}} % Matrix command
\newcommand{\vc}[1]{\mathbf{\bm{#1}}} % Vector command
\newcommand{\T}{\text{T}} % Transpose
\pagestyle{empty}
\begin{document}
2.7 配置confluence latex plugin
  • 在Confluence的Manage app页面中,展开Latex plugin,点击Configure
  • 在Configure中配置latex和dvipng的路径,正常情况为如下: /usr/bin/latex /usr/bin/dvipng
  • 然后点击Save保存
  • 如果没有提示报错,正常情况下Confluence容器的latex插件配置已经完成。可以创建任意页面进行测试latex渲染是否正常运作。