阿里云服务器部署ShareLaTex(Overleaf)
使用docker在服务器上部署ShareLaTex,这里服务器使用阿里云的ECS,操作系统为ubuntu16.04
0.准备工作
将apt的下载源换位国内镜像,在这里不再赘述
1.安装docker
首先卸载旧版本的docker
sudo apt-get remove docker docker-engine docker.io containerd runc
安装依赖
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
添加 GPG 密钥
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add –
设置 docker 仓库
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable"
安装 docker-ce
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
更换国内镜像源(这里推荐用阿里的镜像)
sudo mkdir -p /etc/docker
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://c6j7pq1p.mirror.aliyuncs.com"]
}
sudo systemctl daemon-reload
sudo systemctl restart docker
2.部署overleaf
拉取ShareLaTeX镜像
docker pull sharelatex/sharelatex
创建挂载目录
mkdir ~/sharelatex # 在用户目录下创建sharelatex、mongo_data、redis_data文件夹(这里使用的是root用户)
mkdir ~/mongo_data
mkdir ~/redis_data
cd ~/sharelatex # 进入sharelatex文件夹
配置挂载目录
pip install docker-compose #安装docker-compose
#下载docker-compose.yml配置文件:
curl -O https://raw.githubusercontent.com/sharelatex/sharelatex/master/docker-compose.yml
sudo vim docker-compose.yml #使用vim修改配置文件:
修改以下内容
# 避免端口重复(若80端口占用,可以使用其他端口,例如使用5000端口:- 5000:80)
ports:
- 80:80
# 修改本地挂载目录
volumes:
- /root/sharelatex:/var/lib/sharelatex
# 修改mongo和redis的本地挂载目录
mongo:
volumes:
- /root/mongo_data:/data/db
redis:
volumes:
- /root/redis_data:/data
创建并运行容器
docker-compose up -d
- 此时创建了三个容器
sharelatex
,mongo
,redis
。输入docker ps
查看
安装完整texlive
# 进入容器
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的下载源,这里使用清华源
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的命令行界面并重启
exit
docker restart sharelatex
安装中文字体
- 将Windows机的中文字体复制到host机,Windows机的字体储存在C:\windows\Fonts,目录,这里复制到host机的/root/Fonts目录
# 进入Fonts目录
cd Fonts/
# 删除其中的.fon字体文件(否则可能会报错)
rm -r *.fon
# 返回上层目录并打包
cd ..
tar -zcvf winfonts.tar.gz Fonts/
# 把压缩文件传到sharelatex容器的root目录下
docker cp winfonts.tar.gz sharelatex:/root
# 进入容器的命令行界面
docker exec -it sharelatex bash
# 通过安装wqy字体同时安装xfont工具
apt-get install xfonts-wqy
# 进入root目录,解压winfonts.tar.gz,并移动到系统字体目录下
cd ~
tar -zxvf winfonts.tar.gz
mv Fonts /usr/share/fonts/
# 进入字体目录安装字体
cd /usr/share/fonts/Fonts
mkfontscale
mkfontdir
fc-cache -fv
# 检查确认中文字体安装成功
fc-list :lang=zh-cn
#此时会出现已经安装的中文字体
重启服务
docker restart sharelatex
创建账号
- 浏览器访问服务器公网IP
http://182.xx.xx.xx/launchpad
建立管理员账号(如果不是设置的80端口则需要加上端口号:http://182.xx.xx.xx:5000/launchpad
) - 通过管理员账号可以继续注册普通用户账号
尝试过配置邮件发送,但似乎并没有成功,在这里也不再介绍,如果有解决了的朋友欢迎留言指教 ( ⊙ o ⊙ )