💡 参考文章见Ref,感谢提供思路!
🗺️当前这篇博文地址:https://myoontyee.github.io/article/29d7e5dd.html
⚠️警告:博客文章禁止一切形式的非授权非法转载!
⚠️Attention: All forms of unauthorized illegal reposts are prohibited !

创建时间:2022年4月30日14:16:55
最新更新:2022年5月1日13:10:21


Problem Description:Overleaf + Docker local configuration tutorial

核心思路

  • 拉镜像,环境配置
  • 调整配置文件,使用测试一下
  • 安装完整环境
  • 添加中文样式支持

拉镜像,配环境

  • 启动Docker服务(我就直接打开他GUI端,因为我平常禁止他自启动)
  • 打开WSLBash,输入docker pull sharelatex/sharelatex,等待pull完成
  • Bash内输入mkdir ~/sharelatex/ ~/sharelatex_data/ ~/mongo_data/ ~/redis_data/创建4个文件夹到\\wsl$\Ubuntu-20.04\root下头
    • 这一步据说是为了根据官网创建了文件夹来挂载容器中的文件夹
  • 下载这个docker-compose.yml~/sharelatex里头,就上面创建的那个
    • 修改~/sharelatex里头第15行,改为不冲突的端口,我改为8080,即如下表,记得保存
修改前
修改后
1
2
ports:
- 80:80
1
2
ports:
- 8080:80
  • bash内进入到\\wsl$\Ubuntu-20.04\root\sharelatex这个文件夹
  • 输入docker-compose up -d下载对应的东西

试着用一下!

  • 在浏览器里打开http://127.0.0.1:8080/launchpad注册管理员账号
  • 然后可以先开个项目试试看,点Start Using Overleaf Community EditionNew ProjectExample Project→起个你喜欢的名儿→Create
  • 如下图,看着很棒,那么我们进一步配置,安装更完整的环境

进一步配置

完善你的环境,完整宏包支持(完整版TexLive)

  • 这一步我们要先进入容器的Bash
    • WSLBash内输入
1
docker exec -it sharelatex bash
  • 进完容器的Bash,再进入容器的TexLive所在文件夹
    • Bash内输入
1
cd /usr/local/texlive
  • 上2步操作如下图
  • 执行以下命令,开始更新
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 下载并运行升级脚本
wget http://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh
sh update-tlmgr-latest.sh -- --upgrade

# 更换texlive的下载源
tlmgr option repository https://mirrors.sustech.edu.cn/CTAN/systems/texlive/tlnet/

# 升级tlmgr
tlmgr update --self --all

# 安装完整版texlive(漫长的等待,不要让shell断开)
tlmgr install scheme-full

# 退出sharelatex的命令行界面
exit
  • 如下图,要蛮久的,特别那个装TexLive,可以睡一觉!

  • Bash内输入如下指令重启sharelatex容器

1
docker restart sharelatex

支持中文字体,省的学位论文哭爹喊娘

创建文件夹

  • 先进入sharelatex这个容器,创建一个文件夹/usr/share/fonts/windows
    • WSLBash内输入如下指令,进入sharelatex这个容器的bash
1
docker exec -it sharelatex bash
  • 创建文件夹,在sharelatex这个容器的bash内输入
1
2
cd /usr/share/fonts
mkdir windows

复制字体样式

  • Bash内输入如下指令退出容器
1
exit
  • Bash内输入如下指令看一下sharelatex/sharelatex对应的CONTAINER ID
    • 比如我对应的CONTAINER IDa4868411d7e0
1
docker ps -a
  • Bash内继续输入如下指令,复制字体
1
sudo docker cp /mnt/c/Windows/Fonts 你的sharelatex的CONTAINER ID:/usr/share/fonts/windows
  • 比如我的是
1
sudo docker cp /mnt/c/Windows/Fonts a4868411d7e0:/usr/share/fonts/windows

安装并检查

  • Bash内输入如下指令,进入sharelatex这个容器的bash,安装字体文件
1
2
3
docker exec -it sharelatex bash 
cd /usr/share/fonts/windows
fc-cache
  • 检查有没有安装成功,在Bash内输入以下指令,像下图这样就成了,可以上Overleaf里头冲浪了
1
fc-list | grep windows

关了重开咋整

  • DockerContainers/Apps页面,如下图,平常不用关掉,下次要用时候这4个挨个START就行

Ref