Docker部署Overleaf包含中文字体与全套texlive镜像

这篇具有很好参考价值的文章主要介绍了Docker部署Overleaf包含中文字体与全套texlive镜像。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

docker overleaf,docker,overleaf,tex,docker,github,编辑器

如今Overleaf已推出国内域名访问,速度较之前有很大的提升。但考虑到有些同学为了私密与方便性,因此有了自己搭建开源Overleaf服务的打算。请注意开源项目Overleaf不支持开放注册(需管理员账号来申请注册issue#461)与跟踪评论功能。该项目支持Docker容器化部署,安装过程比较容易。本文记录了在实验室内网环境下利用官方提供的Overleaf Toolkit的docker-compose搭建Overleaf服务的过程,同时采用了基于官方开源搭建的镜像,包含了中文字体与全套texlive软件系统该文章最后更新为2023年1月5日,请注意技术文章的时效性。

准备工作

Overleaf 依赖于以下程序:

  • docker
  • docker-compose

建议安装最新版本的 docker 和 docker-compose。

Docker环境的安装详见官方文档进行安装,然后继续安装compose安装文档安装docker-compose组件,这里不再赘述。1

安装并配置 Overleaf

Overleaf Toolkit 部署

拉取Overleaf Toolkit 工具包

首先,将这个工具包 git 存储库克隆到你的主机上(以下命令已重命名为overleaf-toolkit文件夹):

git clone https://github.com/overleaf/toolkit.git ./overleaf-toolkit

接下来,让我们进入此目录:

cd ./overleaf-toolkit

对于本文章的其余部分,我们将假定你将从此目录运行所有后续命令。2

初始化配置

通过运行以下命令创建本地配置:

bin/init

bin是该工具包提供的一组脚本,这些脚本封装起来,并为你处理大部分的细节。

查看配置目录下的内容config/

ls config

config目录下会生成以下三个文件:
overleaf.rc
variables.env
version

三个配置文件的作用:

  • overleaf.rc:顶级配置文件
  • variables.env:加载到 docker 容器中的环境变量
  • version:使用的 docker 镜像版本

配置内容可根据后续需求修改

其中需要注意的是在overleaf.rc 文件中,可以修改其服务端口:

# Sharelatex container
SHARELATEX_DATA_PATH=data/sharelatex
SERVER_PRO=false
SHARELATEX_LISTEN_IP=127.0.0.1
SHARELATEX_PORT=9000 #将该行修改为你所需服务端口,默认为80端口

variables.env 可以自定义邮件服务

# SHARELATEX_EMAIL_SMTP_HOST=smtp.qq.com
# SHARELATEX_EMAIL_SMTP_PORT=587
# SHARELATEX_EMAIL_SMTP_SECURE=false
# SHARELATEX_EMAIL_SMTP_USER=wrm244@qq.com
# SHARELATEX_EMAIL_SMTP_PASS=hizmpfrpvmdkbbae

修改启动镜像

考虑到官方提供的镜像是不完全texlive程序及不支持中文字体,在这里我基于官方开源的 overleaf 镜像搭建了自己的镜像,wrm244/sharelatex:with-texlive-full,如果对 docker 比较熟悉的同学可以跳过该步骤自行拉取官方镜像然后再进行配置,当然官方镜像不包含中文字体支持,可参考文章配置。

进入overleaf-toolkit文件夹下的 lib 目录

cd lib

修改docker-compose.base.yml文件以下内容

vim docker-compose.base.yml

将源文件的image: "${IMAGE}" 改为 image: wrm244/sharelatex:with-texlive-full 改这一行即可,以下为修改后文件内容

---
version: '2.2'
services:

    sharelatex:
        restart: always
        image: wrm244/sharelatex:with-texlive-full
        container_name: sharelatex
        volumes:
            - "${SHARELATEX_DATA_PATH}:/var/lib/sharelatex"
        ports:
            - "${SHARELATEX_LISTEN_IP:-127.0.0.1}:${SHARELATEX_PORT:-80}:80"
        environment:
          SHARELATEX_MONGO_URL: "${MONGO_URL}"
          SHARELATEX_REDIS_HOST: "${REDIS_HOST}"
          REDIS_HOST: "${REDIS_HOST}"
        env_file: ../config/variables.env

保存退出该文件,重新回到上一级overleaf-toolkit目录

cd ..

也可以修改config目录下overleaf.rc配置文件赋值为SHARELATEX_IMAGE=wrm244/sharelatex:with-texlive-full

启动服务

让我们启动 docker 服务:

bin/up

bin是该工具包提供的一组脚本,这些脚本封装起来,并为你处理大部分的细节。

现在会看到来自 docker 容器的一些日志输出,表示正在拉取镜像,后续会自动运行容器。如果在终端上按下Ctrl+c,服务将关闭。您可以通过命令bin/start来重新启动它们(不附加到日志输出)。

创建管理员帐户

在浏览器中,打开 http://localhost:服务端口/launchpad 后会看到注册界面。 使用要用作管理员帐户的凭据填写,然后点击“注册”。

服务端口默认为80,即http://localhost/launchpad 缺省条件下即可访问。当然你也可以在./config目录下overleaf.rc文件中修改所需端口。

然后单击链接以转到登录页面(http://localhost:服务端口/login)。 登录后,你将被带到欢迎页面。

单击页面底部的绿色按钮以开始使用 Overleaf。
docker overleaf,docker,overleaf,tex,docker,github,编辑器
docker overleaf,docker,overleaf,tex,docker,github,编辑器

注意:在Overleaf实现中文输出需采用XeLaTex编译,在页面右上角可进行设置

反向代理域名服务

有些同学有域名访问需求,在overleaf-toolkit工具包中自然提供nginx服务,默认是关闭的。可访问该指导文档进行配置。当然你也可以自行搭建代理服务,这里不再赘述。

迁移与备份

如果是采用overleaf-toolkit工具包进行部署服务的话,在该overleaf-toolkit目录下的data文件夹会映射docker容器的文件,包括sharelatex redis mongo 文件夹,备份这几个文件夹即可,在迁移的时候,启动容器前先把文件复制到data目录下即可恢复数据。

更多

文章采用的docker镜像:wrm244/sharelatex:with-texlive-full包含了以下中文字体,具体在路径/usr/share/fonts/chinese

AGENCYB.TTF                  FRAMDCN.TTF                        PER_____.TTF
AGENCYR.TTF                  framdit.ttf                        phagspab.ttf
ALGER.TTF                    framd.ttf                          phagspa.ttf
ANTQUABI.TTF                 FrederickatheGreat-Regular.ttf     PLAYBILL.TTF
ANTQUAB.TTF                  FredokaOne-Regular.ttf             PoiretOne-Regular.ttf
ANTQUAI.TTF                  FREESCPT.TTF                       POORICH.TTF
arialbd.ttf                  FRSCRIPT.TTF                       PRISTINA.TTF
arialbi.ttf                  FTLTLT.TTF                         RAGE.TTF
ariali.ttf                   FZSTK.TTF                          Raleway-Bold.ttf
ARIALNBI.TTF                 FZXBSJW.TTF                        Raleway-Regular.ttf
ARIALNB.TTF                  FZYTK.TTF                          RAVIE.TTF
ARIALNI.TTF                  Gabriola.ttf                       REFSAN.TTF
ARIALN.TTF                   gadugib.ttf                        REFSPCL.TTF
arial.ttf                    gadugi.ttf                         Roboto-BoldItalic.ttf
ariblk.ttf                   GARABD.TTF                         Roboto-Bold.ttf
ARLRDBD.TTF                  GARAIT.TTF                         RobotoCondensed-BoldItalic.ttf
Arvo-BoldItalic.ttf          GARA.TTF                           RobotoCondensed-Bold.ttf
Arvo-Bold.ttf                georgiab.ttf                       RobotoCondensed-Italic.ttf
Arvo-Italic.ttf              georgiai.ttf                       RobotoCondensed-Regular.ttf
Arvo-Regular.ttf             georgia.ttf                        Roboto-Italic.ttf
bahnschrift.ttf              georgiaz.ttf                       Roboto-Regular.ttf
BarlowCondensed-Regular.ttf  GIGI.TTF                           RobotoSlab-Bold.ttf
Barrio-Regular.ttf           GILBI___.TTF                       RobotoSlab-Regular.ttf
BASKVILL.TTF                 GILB____.TTF                       ROCCB___.TTF
BAUHS93.TTF                  GILC____.TTF                       ROCC____.TTF
BELLB.TTF                    GILI____.TTF                       ROCKBI.TTF
BELLI.TTF                    GILLUBCD.TTF                       ROCKB.TTF
BELL.TTF                     GILSANUB.TTF                       ROCKEB.TTF
BERNHC.TTF                   GIL_____.TTF                       ROCKI.TTF
BKANT.TTF                    GLECB.TTF                          ROCK.TTF
BOD_BI.TTF                   GlobalMonospace.CompositeFont      sarasa-mono-k-bolditalic.ttf
BOD_BLAI.TTF                 GlobalSansSerif.CompositeFont      sarasa-mono-k-bold.ttf
BOD_BLAR.TTF                 GlobalSerif.CompositeFont          sarasa-mono-k-extralightitalic.ttf
BOD_B.TTF                    GlobalUserInterface.CompositeFont  sarasa-mono-k-extralight.ttf
BOD_CBI.TTF                  GLSNECB.TTF                        sarasa-mono-k-italic.ttf
BOD_CB.TTF                   GOTHICBI.TTF                       sarasa-mono-k-lightitalic.ttf
BOD_CI.TTF                   GOTHICB.TTF                        sarasa-mono-k-light.ttf
BOD_CR.TTF                   GOTHICI.TTF                        sarasa-mono-k-regular.ttf
BOD_I.TTF                    GOTHIC.TTF                         sarasa-mono-k-semibolditalic.ttf
BOD_PSTC.TTF                 GOUDOSB.TTF                        sarasa-mono-k-semibold.ttf
BOD_R.TTF                    GOUDOSI.TTF                        SCHLBKBI.TTF
BOOKOSBI.TTF                 GOUDOS.TTF                         SCHLBKB.TTF
BOOKOSB.TTF                  GOUDYSTO.TTF                       SCHLBKI.TTF
BOOKOSI.TTF                  HARLOWSI.TTF                       SCRIPTBL.TTF
BOOKOS.TTF                   HARNGTON.TTF                       segmdl2.ttf
BRADHITC.TTF                 HATTEN.TTF                         segoeprb.ttf
BRITANIC.TTF                 himalaya.ttf                       segoepr.ttf
BRLNSB.TTF                   holomdl2.ttf                       segoescb.ttf
BRLNSDB.TTF                  HTOWERTI.TTF                       segoesc.ttf
BRLNSR.TTF                   HTOWERT.TTF                        segoeuib.ttf
BROADW.TTF                   impact.ttf                         segoeuii.ttf
BRUSHSCI.TTF                 IMPRISHA.TTF                       segoeuil.ttf
BSSYM7.TTF                   IndieFlower.ttf                    segoeuisl.ttf
BubblegumSans-Regular.ttf    INFROMAN.TTF                       segoeui.ttf
CabinSketch-Bold.ttf         Inkfree.ttf                        segoeuiz.ttf
CabinSketch-Regular.ttf      ITCBLKAD.TTF                       seguibli.ttf
calibrib.ttf                 ITCEDSCR.TTF                       seguibl.ttf
calibrii.ttf                 ITCKRIST.TTF                       seguiemj.ttf
calibrili.ttf                javatext.ttf                       seguihis.ttf
calibril.ttf                 JOKERMAN.TTF                       seguili.ttf
calibri.ttf                  JUICE___.TTF                       seguisbi.ttf
calibriz.ttf                 JuliusSansOne-Regular.ttf          seguisb.ttf
CALIFB.TTF                   KUNSTLER.TTF                       seguisli.ttf
CALIFI.TTF                   l_10646.ttf                        seguisym.ttf
CALIFR.TTF                   LATINWD.TTF                        ShadowsIntoLight.ttf
CALISTBI.TTF                 LBRITEDI.TTF                       SHOWG.TTF
CALISTB.TTF                  LBRITED.TTF                        simfang.ttf
CALISTI.TTF                  LBRITEI.TTF                        simhei.ttf
CALIST.TTF                   LBRITE.TTF                         simkai.ttf
cambriab.ttf                 LCALLIG.TTF                        SIMLI.TTF
cambriai.ttf                 LeelaUIb.ttf                       simsunb.ttf
cambria.ttc                  LEELAWAD.TTF                       simsun.ttc
cambriaz.ttf                 LEELAWDB.TTF                       SIMYOU.TTF
Candarab.ttf                 LeelawUI.ttf                       SitkaB.ttc
Candarai.ttf                 LeelUIsl.ttf                       SitkaI.ttc
Candarali.ttf                LFAXDI.TTF                         Sitka.ttc
Candaral.ttf                 LFAXD.TTF                          SitkaZ.ttc
Candara.ttf                  LFAXI.TTF                          SNAP____.TTF
Candaraz.ttf                 LFAX.TTF                           StaticCache.dat
CASTELAR.TTF                 LHANDW.TTF                         STCAIYUN.TTF
CENSCBK.TTF                  Lobster-Regular.ttf                STENCIL.TTF
CENTAUR.TTF                  LSANSDI.TTF                        STFANGSO.TTF
CENTURY.TTF                  LSANSD.TTF                         STHUPO.TTF
CHILLER.TTF                  LSANSI.TTF                         STKAITI.TTF
COLONNA.TTF                  LSANS.TTF                          STLITI.TTF
Comfortaa-Bold.ttf           LTYPEBO.TTF                        STSONG.TTF
Comfortaa-Regular.ttf        LTYPEB.TTF                         STXIHEI.TTF
comicbd.ttf                  LTYPEO.TTF                         STXINGKA.TTF
comici.ttf                   LTYPE.TTF                          STXINWEI.TTF
comic.ttf                    lucon.ttf                          STZHONGS.TTF
comicz.ttf                   MAGNETOB.TTF                       Swkeys1.ttf
consolab.ttf                 MAIAN.TTF                          sylfaen.ttf
consolai.ttf                 malgunbd.ttf                       symbol.ttf
consola.ttf                  malgunsl.ttf                       tahomabd.ttf
consolaz.ttf                 malgun.ttf                         tahoma.ttf
constanb.ttf                 marlett.ttf                        taileb.ttf
constani.ttf                 MATURASC.TTF                       taile.ttf
constan.ttf                  Megrim.ttf                         TCBI____.TTF
constanz.ttf                 micross.ttf                        TCB_____.TTF
COOPBL.TTF                   mingliub.ttc                       TCCB____.TTF
COPRGTB.TTF                  MISTRAL.TTF                        TCCEB.TTF
COPRGTL.TTF                  mmrtextb.ttf                       TCCM____.TTF
corbelb.ttf                  mmrtext.ttf                        TCMI____.TTF
corbeli.ttf                  MOD20.TTF                          TCM_____.TTF
corbelli.ttf                 monbaiti.ttf                       TEMPSITC.TTF
corbell.ttf                  Monoton-Regular.ttf                timesbd.ttf
corbel.ttf                   msgothic.ttc                       timesbi.ttf
corbelz.ttf                  msjhbd.ttc                         timesi.ttf
courbd.ttf                   msjhl.ttc                          times.ttf
courbi.ttf                   msjh.ttc                           trebucbd.ttf
couri.ttf                    MSUIGHUB.TTF                       trebucbi.ttf
cour.ttf                     MSUIGHUR.TTF                       trebucit.ttf
CURLZ___.TTF                 msyhbd.ttc                         trebuc.ttf
Delius-Regular.ttf           msyhl.ttc                          VastShadow-Regular.ttf
Dengb.ttf                    msyh.ttc                           verdanab.ttf
Dengl.ttf                    msyi.ttf                           verdanai.ttf
Deng.ttf                     MTCORSVA.TTF                       verdana.ttf
desktop.ini                  MTEXTRA.TTF                        verdanaz.ttf
Dosis-Regular.ttf            mvboli.ttf                         VINERITC.TTF
DroidSerif-BoldItalic.ttf    NanumPenScript-Regular.ttf         VIVALDII.TTF
DroidSerif-Bold.ttf          NIAGENG.TTF                        VLADIMIR.TTF
DroidSerif-Italic.ttf        NIAGSOL.TTF                        webdings.ttf
DroidSerif.ttf               NirmalaB.ttf                       wingding.ttf
DShirgy4.ttc                 NirmalaS.ttf                       WINGDNG2.TTF
DUBAI-BOLD.TTF               Nirmala.ttf                        WINGDNG3.TTF
DUBAI-LIGHT.TTF              ntailub.ttf                        YuGothB.ttc
DUBAI-MEDIUM.TTF             ntailu.ttf                         YuGothL.ttc
DUBAI-REGULAR.TTF            OCRAEXT.TTF                        YuGothM.ttc
ebrimabd.ttf                 OLDENGL.TTF                        YuGothR.ttc
ebrima.ttf                   ONYX.TTF                           ZillaSlab-Bold.ttf
ELEPHNTI.TTF                 OpenSans-BoldItalic.ttf            ZillaSlab-Regular.ttf
ELEPHNT.TTF                  OpenSans-Bold.ttf                  书法家行楷体.TTF
ENGR.TTF                     OpenSans-Italic.ttf                仿宋_GB2312.ttf
ERASBD.TTF                   OpenSans-Regular.ttf               南构周洋字体.ttf
ERASDEMI.TTF                 OpenSans-Semibold.ttf              南构无边.ttf
ERASLGHT.TTF                 OUTLOOK.TTF                        南构日系楷行.ttf
ERASMD.TTF                   palabi.ttf                         南构玄道硬笔.ttf
FELIXTI.TTF                  palab.ttf                          南构诗韵新隶.ttf
fms_metadata.xml             palai.ttf                          南构邱见行书.ttf
fonts.dir                    pala.ttf                           南构钟声行书.ttf
fonts.scale                  PALSCRI.TTF                        方正小标宋简体_0.ttf
FORTE.TTF                    Pangolin-Regular.ttf               日文毛笔行书.ttf
FRABKIT.TTF                  PAPYRUS.TTF                        楷体_GB2312_0.ttf
FRABK.TTF                    PARCHM.TTF                         楷体_GB2312.ttf
FRADMCN.TTF                  PERBI___.TTF                       特太行書.ttc
FRADMIT.TTF                  PERB____.TTF                       蒙纳简行书.otf
FRADM.TTF                    PERI____.TTF                       蒙纳简行楷.otf
FRAHVIT.TTF                  PERTIBD.TTF
FRAHV.TTF                    PERTILI.TTF

  1. Get Docker ↩︎

  2. overleaf-toolkit-quick-start-guide ↩︎文章来源地址https://www.toymoban.com/news/detail-815434.html

到了这里,关于Docker部署Overleaf包含中文字体与全套texlive镜像的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CentOS中安装中文字体

    在CentOS上安装宋体字体的过程可能因为不同版本而有所差异。以下是一种常见的安装宋体字体的方法: 1.下载SimSun.ttf 宋体字体文件并把对应字体的的ttf文件拷到/usr/share/fonts/的目录下如:     /usr/share/fonts/chinese/SimSun.ttf 2.安装宋体字体: cd /usr/share/fonts/chinese/     //进入字

    2024年02月07日
    浏览(40)
  • Unity TextMeshPro使用中文字体

      TextMeshPro是Unity新一代字体,是 Unity 的最终文本解决方案。它是 Unity UI Text 和旧版 Text Mesh 的完美替代方案。功能强大、易于使用、性能高效。目前TextMeshPro对中文的支持也还可以,不过默认不能用,需要自己成生成。    本文就介绍TextMeshPro中文字体文件的生成方法,并

    2024年02月08日
    浏览(38)
  • Ubuntu下让matplotlib显示中文字体

    参考文章: https://zodiac911.github.io/blog/matplotlib-chinese.html Ubuntu下python的matplotlib库显示中文字体很不方便,本文快速解决这个问题。 Ubuntu的字体目录在 /usr/share/fonts 下,自带的中文字体很烂,先安装一下中文字体库。 终端输入: 你会发现在 /usr/share/fonts/MyFonts 下添加了很多新字

    2024年02月07日
    浏览(32)
  • 树莓派系统汉化教程(汉语+中文字体库+中文输入法pinyin(拼音))

    1.在putty登录树莓派,在命令行输入sudo nano raspi-config,然后回车如下图: 2.选择 5 Localisation Options Configure language and regional settings,并回车 结果如下图: 因为Timezone(时区)/keyboard(键盘)/WLAN country (wifi国家),用官方的烧录器烧录时已经设置好了,不会设置的可以参考上一

    2024年02月07日
    浏览(42)
  • Python的Matplotlib 设置中文字体,字号

      生成需要绘图的数据:  设定曲线的标签、横纵坐标、横纵轴名称、图例。 其中的“size = 12”、“fontsize=12”是指12像素,在mpl中,默认单位是像素,而word中的字号单位是磅。1磅=4/3像素,所以size=12对应的是小五号字(9磅)。    

    2024年02月02日
    浏览(35)
  • Unity [TextMeshPRO]动态字体显示中文

    我们知道Unity的Text组件在新版本中已经标记为legacy,TextMeshPRO因为有着更加出色的效果被Unity官方奉为主流。 言归正传,如果我们想要用TextMeshPRO]显示中文应该这么处理呢? 首先,我们肯定要导入一份中文字体 因为静态字体的文章较多,这里不再赘述 然后我们在字体上右键

    2024年02月12日
    浏览(40)
  • 【UGUI】TextMeshPro如何配置和使用中文字体

            在Unity中,TextMeshPro与常规 Text 组件相比提供了更高级的文本呈现功能,TextMesh Pro 可以处理各种语言,包括中文。我们可以轻松地在 Unity 项目中使用中文,而不必担心字体和布局问题。 目录 一、配置和使用中文字体步骤 二、警告及解决方案 三、Font Asset Creator属性介

    2024年02月07日
    浏览(45)
  • Unity TextMesh Pro创建中文字体资源

    最近将Unity升级到了2021.3.22,发现Unity UI已经完全使用TextMesh Pro替代了原来的Text组件,测试了下,发现自带的两种字体资源都不支持中文,中文字自动变成了小方块,如下图: 查了下资料,需要自己创建中文字体资源,网上有人说在Project窗口右键—Create—TextMeshPro—Font Asse

    2024年02月05日
    浏览(40)
  • Mac环境Obsidian的ExcaliDraw添加中文字体

    顾名思义,这是画图用的,但是系统不支持中文字体,所以需要下载中文字体自己放进去。

    2024年02月21日
    浏览(38)
  • 解决Avalonia 11.X版本的中文字体问题

    网上搜索的方法使用接口“IFontManagerImpl”这个方法目前只能用于Avalonia 10.X版本,因为11版本后官方把这个接口的成员都设置成了非plubic,所以之前的版本解决办法用不上了,经过搜索github的官方那边的问题集锦,要解决解决Avalonia 11.X版本的中文字体问题有2个思路: 1.在程序

    2024年02月13日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包