使用docker在本地部署sharelatex
做科研的写论文是难以逃避的,而用sharelatex进行论文排版是再方便不过的了,但是overleaf官网站点在国外,需要科学上网才行,而且编译有时候还很慢,所以我们想把overleaf本地化部署,幸运地是,sharelatex提供了docker版本的镜像用于在本地部署overleaf,本文参考网上的教程对安装过程进行记录。
环境配置:
- Ubuntu 20.04 LTS
Docker安装
在ubuntu中安装docker可以参考我的另一篇博客:Ubuntu 20.04安装docker
此处不再赘述。
Sharelatex安装
我们使用最方便的docker-compose来部署sharelatex.
拉取最新的sharelatex镜像
docker pull sharelatex/sharelatex
下载docker-compose.yml文件,并进行配置
# 1.在用户目录下创建一个sharelatex文件夹
# 2.下载官方的docker-compose.yml配置文件
mkdir -p ~/sharelatex
cd ~/sharelatex
curl -O https://raw.githubusercontent.com/sharelatex/sharelatex/master/docker-compose.yml
使用vi打开并修改配置文件
sudo vim docker-compose.yml
主要修改一下docker的挂载目录备份文件以防止docker崩溃造成的文件丢失
# 修改本地挂载目录
volumes:
- /home/docker/sharelatex:/var/lib/sharelatex
# 修改mongo和redis的本地挂载目录
# mongo
volumes:
- /home/docker/mongo_data:/data/db
# redis
volumes:
- /home/docker/redis_data:/data
(提示:如果对docker和linux不熟悉并且不打算迁移数据的情况下,没必要挂载redis和mongiDB数据目录,因为这些数据库中存储的大部分是账号和项目列表信息,你挂载出来也没什么用,真正对我们有用的latex源码和资源都在sharelatex挂载目录中)
对于其他配置,如果你能看懂的话,随便改,如果看不懂的话只修改上述配置即可。
使用修改后的docker-compose.yml创建并启动docker容器
# 在docker-compose.yml所在目录下执行
docker-compose up -d
# 如果不在docker-compose.yml所在目录或者修改了配置文件名称,则执行
docker-compose -f 你的docker-compose配置文件路径 up -d
安装完整版texlatex
# 进入sharelatex容器
docker exec -it sharelatex bash
# 进入texlive默认安装目录
cd /usr/local/texlive
# 下载并运行升级脚本
wget http://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh
sh update-tlmgr-latest.sh -- --upgrade
# 更换Texlive的下载源,例如清华tuna源
tlmgr option repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet/
# 升级tlmgr
tlmgr update --self --all
# 更新字体缓存
luaotfload-tool -fu
# 安装完整版texlive(不要让shell断开,想离开的可以用nohup)
tlmgr install scheme-full
# 退出sharelatex的命令行界面,并重启sharelatex容器
exit
docker restart sharelatex
如果只用来写英文论文的话,到这里就算安装完成并可以使用了。
可以在浏览器中输入 http://your IP/launchpad
初始化管理员账号密码了。
如果打开上述地址直接跳转到登录界面,或者忘记admin账号密码,可以通过命令行对管理员账号和密码进行重置:
# 其中joe@example.com修改为你的管理员邮箱
docker exec sharelatex /bin/bash -c "cd /var/www/sharelatex; grunt user:create-admin --email=joe@example.com"
然后docker会返回一个密码重置地址,复制地址浏览器打开即可重置密码。
安装配置中文
- 如果需要用来写中文论文,那么还需要配置响应的中文字体环境。
打包Windows字体库(即目录C:\windows\fonts)然后上传到服务器。
至于上传文件到linux的工具有很多,比如:Xftp、Filezila、Putty等。
除此之外,我最常用的是使用Xshell配合lrzsz进行文件的上传和下载,原因是安装使用方便,不用开多个软件(具体使用请自行百度)。
# 进入fonts目录
cd fonts/
# 删除其中的.fon字体文件(其他文章中写道不删会报错)
rm -r *.fon
# 返回上层目录并打包
cd ..
tar -zcvf fonts.tar.gz fonts/
# 把打包文件传到sharelatex容器的root目录下
docker cp fonts.tar.gz sharelatex:/root
在容器中安装Windows字体
# 进入sharelatex容器
docker exec -it sharelatex bash
# 安装xfonts-wqy工具
apt-get install xfonts-wqy
# 进入root目录,解压fonts.tar.gz,并移动到系统字体目录下
cd ~
tar -zxvf fonts.tar.gz
mv fonts /usr/share/fonts/
# 进入字体目录安装字体
cd /usr/share/fonts/fonts
mkfontscale
mkfontdir
fc-cache -fv
# 检查确认中文字体安装成功
fc-list :lang=zh-cn
参考:
评论区