黑群晖docker配置文件 群晖docker使用

使用Docker部署ShareLaTex并简单配置中文环境

因为工作需要,在服务器上配置了ShareLaTex环境,因为资料真的超级少,然后看到了转载博主的博客较为详细,故转载在此,但是博主博客中有一点点地方没有说到后面会进行补充。

准备工作

系统与Docker环境安装同上篇Docker部署GitLab并实现基本配置,然后继续按照教程安装docker-compose组件。

安装并配置ShareLaTeX

由于ShareLaTeX的安装依赖于MongoDB和Redis,因此本文将使用官方向导建议使用docker-compose快速部署ShareLaTeX

  • 拉取最新的ShareLaTeX镜像
docker pull sharelatex/sharelatex
docker pull sharelatex/sharelatex
docker pull sharelatex/sharelatex
  • 下载docker-compose.yml文件
mkdir -p ~/sharelatex # 在用户目录下创建一个sharelatex文件夹 cd ~/sharelatex # 进入sharelatex文件夹 curl -O https://raw.githubusercontent.com/sharelatex/sharelatex/master/docker-compose.yml # 下载官方的docker-compose.yml配置文件 sudo vi docker-compose.yml # 使用vi修改配置文件
mkdir -p ~/sharelatex # 在用户目录下创建一个sharelatex文件夹 cd ~/sharelatex # 进入sharelatex文件夹 curl -O https://raw.githubusercontent.com/sharelatex/sharelatex/master/docker-compose.yml # 下载官方的docker-compose.yml配置文件 sudo vi docker-compose.yml # 使用vi修改配置文件
mkdir -p ~/sharelatex # 在用户目录下创建一个sharelatex文件夹 cd ~/sharelatex # 进入sharelatex文件夹 curl -O https://raw.githubusercontent.com/sharelatex/sharelatex/master/docker-compose.yml # 下载官方的docker-compose.yml配置文件 sudo vi docker-compose.yml # 使用vi修改配置文件
  • 需要配置的项
# 避免端口重复 ports: - 5000:80 # 修改本地挂载目录 volumes: - /home/docker/sharelatex:/var/lib/sharelatex # 添加升级texlive需要的环境变量,主要是添加2018目录到2017前面,目的是为了防止后面安装完整版texlive时出现错误 # 【这里原博主有写,但是我添加以后好像并没有什么效果,不添加也是可以的】 environment: - PATH: /usr/localsbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/texlive/2018/bin/x86_64-linux:/usr/local/texlive/2017/bin/x86_64-linux # 下面选项设置ShareLaTeX的显示样式 SHARELATEX_APP_NAME: Our ShareLaTeX SHARELATEX_NAV_TITLE: Our ShareLaTeX Instance SHARELATEX_HEADER_IMAGE_URL: http://somewhere.com/mylogo.png SHARELATEX_LEFT_FOOTER: '[{"text": "Powered by <a href=\"https://www.sharelatex.com\">ShareLaTeX</a> 2016"},{"text": "Another page I want to link to can be found <a href=\"here\">here</a>"} ]' SHARELATEX_RIGHT_FOOTER: '[{"text": "Hello I am on the Right"} ]' # 修改mongo和redis的本地挂载目录 # mongo volumes: - /home/docker/mongo_data:/data/db # redis volumes: - /home/docker/redis_data:/data
# 避免端口重复 ports: - 5000:80 # 修改本地挂载目录 volumes: - /home/docker/sharelatex:/var/lib/sharelatex # 添加升级texlive需要的环境变量,主要是添加2018目录到2017前面,目的是为了防止后面安装完整版texlive时出现错误 # 【这里原博主有写,但是我添加以后好像并没有什么效果,不添加也是可以的】 environment: - PATH: /usr/localsbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/texlive/2018/bin/x86_64-linux:/usr/local/texlive/2017/bin/x86_64-linux # 下面选项设置ShareLaTeX的显示样式 SHARELATEX_APP_NAME: Our ShareLaTeX SHARELATEX_NAV_TITLE: Our ShareLaTeX Instance SHARELATEX_HEADER_IMAGE_URL: http://somewhere.com/mylogo.png SHARELATEX_LEFT_FOOTER: '[{"text": "Powered by <a href=\"https://www.sharelatex.com\">ShareLaTeX</a> 2016"},{"text": "Another page I want to link to can be found <a href=\"here\">here</a>"} ]' SHARELATEX_RIGHT_FOOTER: '[{"text": "Hello I am on the Right"} ]' # 修改mongo和redis的本地挂载目录 # mongo volumes: - /home/docker/mongo_data:/data/db # redis volumes: - /home/docker/redis_data:/data
# 避免端口重复 ports: - 5000:80 # 修改本地挂载目录 volumes: - /home/docker/sharelatex:/var/lib/sharelatex # 添加升级texlive需要的环境变量,主要是添加2018目录到2017前面,目的是为了防止后面安装完整版texlive时出现错误 # 【这里原博主有写,但是我添加以后好像并没有什么效果,不添加也是可以的】 environment: - PATH: /usr/localsbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/texlive/2018/bin/x86_64-linux:/usr/local/texlive/2017/bin/x86_64-linux # 下面选项设置ShareLaTeX的显示样式 SHARELATEX_APP_NAME: Our ShareLaTeX SHARELATEX_NAV_TITLE: Our ShareLaTeX Instance SHARELATEX_HEADER_IMAGE_URL: http://somewhere.com/mylogo.png SHARELATEX_LEFT_FOOTER: '[{"text": "Powered by <a href=\"https://www.sharelatex.com\">ShareLaTeX</a> 2016"},{"text": "Another page I want to link to can be found <a href=\"here\">here</a>"} ]' SHARELATEX_RIGHT_FOOTER: '[{"text": "Hello I am on the Right"} ]' # 修改mongo和redis的本地挂载目录 # mongo volumes: - /home/docker/mongo_data:/data/db # redis volumes: - /home/docker/redis_data:/data
  • 创建并运行ShareLaTeX容器,启动后不要着急进入网站
# 在sharelatex目录下 docker-compose up -d
# 在sharelatex目录下 docker-compose up -d
# 在sharelatex目录下 docker-compose up -d

这里有一点需要注意:就是我们配置好ShareLaTex后,如何也配置好了后面的中文环境,如果这个时候我们再去更改配置文件docker-compose.yml的话,我们再重新docker-compose up -d更新docker环境参数的话,下面的所有的操作都将要重新执行,包括升级并安装texlive操作,以及中文环境的配置。

  • 升级并安装完整版texlive
# 进入容器的命令行(sharelatex容器本质上是一个Ubuntu) docker exec -it sharelatex bash # 进入texlive默认安装目录 cd /usr/local/texlive # 复制2017文件夹为2018 cp -a 2017 2018 # 下载并运行升级脚本 wget http://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh sh update-tlmgr-latest.sh -- --upgrade # 更换texlive的下载源,例如国内的清华源 tlmgr option repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet/ # 升级tlmgr tlmgr update --self --all # 更新字体缓存(好像没成功,但是不影响下面操作) luaotfload-tool -fu # 安装完整版texlive(漫长的等待,不要让shell断开) tlmgr install scheme-full # 推出sharelatex的命令行界面,并重启sharelatex容器 exit docker restart sharelatex
# 进入容器的命令行(sharelatex容器本质上是一个Ubuntu) docker exec -it sharelatex bash # 进入texlive默认安装目录 cd /usr/local/texlive # 复制2017文件夹为2018 cp -a 2017 2018 # 下载并运行升级脚本 wget http://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh sh update-tlmgr-latest.sh -- --upgrade # 更换texlive的下载源,例如国内的清华源 tlmgr option repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet/ # 升级tlmgr tlmgr update --self --all # 更新字体缓存(好像没成功,但是不影响下面操作) luaotfload-tool -fu # 安装完整版texlive(漫长的等待,不要让shell断开) tlmgr install scheme-full # 推出sharelatex的命令行界面,并重启sharelatex容器 exit docker restart sharelatex
# 进入容器的命令行(sharelatex容器本质上是一个Ubuntu) docker exec -it sharelatex bash # 进入texlive默认安装目录 cd /usr/local/texlive # 复制2017文件夹为2018 cp -a 2017 2018 # 下载并运行升级脚本 wget http://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh sh update-tlmgr-latest.sh -- --upgrade # 更换texlive的下载源,例如国内的清华源 tlmgr option repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet/ # 升级tlmgr tlmgr update --self --all # 更新字体缓存(好像没成功,但是不影响下面操作) luaotfload-tool -fu # 安装完整版texlive(漫长的等待,不要让shell断开) tlmgr install scheme-full # 推出sharelatex的命令行界面,并重启sharelatex容器 exit docker restart sharelatex
  • 使用ShareLaTeX

进入浏览器访问http://192.168.8.21:5000/launchpad,根据提示创建Admin用户。

配置中文写作环境

下载的sharelatex镜像里面默认是没有安装xfont和中文字体的,因此无法渲染中文文档,必须安装所需的中文字体,这里以Windows下常用字体和Adobe Song Std为例。

  • 将Windows字体库(即目录C:\windows\fonts)上传到host机,如果Windows安装了Git可以使用scp命令直接上传
  • 在host机下把fonts目录打包并传到sharelatex容器中
# 进入fonts目录 cd fonts/ # 删除其中的.fon字体文件(该种格式文件在后面建立字体目录时会报错),只保留TrueType和OpenType字体,即.ttf和.otf # 一般地,如果只需要其中特定的中文字体,只需要上传需要的字体即可 rm -r *.fon # 返回上层目录并打包 cd .. tar -zcvf winfonts.tar.gz fonts/ # 把压缩文件传到sharelatex容器的root目录下 docker cp winfonts.tar.gz sharelatex:/root
# 进入fonts目录 cd fonts/ # 删除其中的.fon字体文件(该种格式文件在后面建立字体目录时会报错),只保留TrueType和OpenType字体,即.ttf和.otf # 一般地,如果只需要其中特定的中文字体,只需要上传需要的字体即可 rm -r *.fon # 返回上层目录并打包 cd .. tar -zcvf winfonts.tar.gz fonts/ # 把压缩文件传到sharelatex容器的root目录下 docker cp winfonts.tar.gz sharelatex:/root
# 进入fonts目录 cd fonts/ # 删除其中的.fon字体文件(该种格式文件在后面建立字体目录时会报错),只保留TrueType和OpenType字体,即.ttf和.otf # 一般地,如果只需要其中特定的中文字体,只需要上传需要的字体即可 rm -r *.fon # 返回上层目录并打包 cd .. tar -zcvf winfonts.tar.gz fonts/ # 把压缩文件传到sharelatex容器的root目录下 docker cp winfonts.tar.gz sharelatex:/root
  • 在容器中安装Windows字体
# 进入容器的命令行界面 $ docker exec -it sharelatex bash # 通过安装wqy字体同时安装xfont工具 $ apt-get install xfonts-wqy # 进入root目录,解压winfonts.tar.gz,并剪切到系统字体目录下 cd ~ tar -zxvf winfonts.tar.gz mv winfonts /usr/share/fonts/ # 进入字体目录安装字体 cd /usr/share/fonts/winfonts mkfontscale mkfontdir fc-cache -fv # 检查确认中文字体安装成功 fc-list :lang=zh-cn
# 进入容器的命令行界面 $ docker exec -it sharelatex bash # 通过安装wqy字体同时安装xfont工具 $ apt-get install xfonts-wqy # 进入root目录,解压winfonts.tar.gz,并剪切到系统字体目录下 cd ~ tar -zxvf winfonts.tar.gz mv winfonts /usr/share/fonts/ # 进入字体目录安装字体 cd /usr/share/fonts/winfonts mkfontscale mkfontdir fc-cache -fv # 检查确认中文字体安装成功 fc-list :lang=zh-cn
# 进入容器的命令行界面 $ docker exec -it sharelatex bash # 通过安装wqy字体同时安装xfont工具 $ apt-get install xfonts-wqy # 进入root目录,解压winfonts.tar.gz,并剪切到系统字体目录下 cd ~ tar -zxvf winfonts.tar.gz mv winfonts /usr/share/fonts/ # 进入字体目录安装字体 cd /usr/share/fonts/winfonts mkfontscale mkfontdir fc-cache -fv # 检查确认中文字体安装成功 fc-list :lang=zh-cn
  • 回到ShareLaTeX网站,创建一个新项目,使用CTEX宏集和XeLaTeX编译器,即可生成中文pdf。
  • 因为学校论文的需要,有时需要其他中文字体,例如Adobe宋体,其安装流程与上述基本一致。(PS:在GitHub上可以找到公开的Adobe Song Std字体,涉及版权这里不放链接)

注意:到此出配置完成了,但是我们会发现我们直接写中文是有问题的,解决方案如下
(1)包含头 \documentclass[utf8]{ctexart}
(2)点开左上角的Menu,进去将Compiler改成XeLaTex即可
这个时候我们就可以愉快的时使用ShareLatex的中文了

Latex教程和模板

原文链接:https://blog.51cto.com/u_12935/7370202

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享