Docker容器部署overleaf

2024-04-28 00:44
文章标签 部署 docker 容器 overleaf

本文主要是介绍Docker容器部署overleaf,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

overleaf在线版限制很多,好在开源,准备在本地Docker部署,网上翻了翻,似乎本地部署并非易事,我也尝试了一下,发现直接使用docker-compose拉官方最新镜像部署的确问题很多,不过最终还是完美解决。

一、拉取Overleaf Toolkit 工具包

将工具包克隆下来:

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

进入目录:

cd overleaf-toolkit

二、初始化配置

bin/init

此时config文件夹下生成了三个配置文件。

三个配置文件的作用:

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

1、修改overleaf.rc文件

将:

SHARELATEX_LISTEN_IP=127.0.0.1

 改为:

SHARELATEX_LISTEN_IP=0.0.0.0

其它配置保持默认即可。

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

2、修改lib目录下的docker-compose.base.yml

vim docker-compose.base.yml

- "${SHARELATEX_LISTEN_IP:-127.0.0.1}:${SHARELATEX_PORT:-80}:80"

改为:

- "10808:80"

这样就可以通过外部端口10808访问服务。

注意:很多博主在这里都把镜像修改为自己改过的,我这里不对镜像做任何调整,就使用官方的镜像。

然后执行以下命令,启动服务:

bin/up

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

正常不会报错,浏览器访问:http://ip:10808就能出现登录界面。

三、TeXLive安装

如果你直接开始使用,那么大概率会出现编译问题。

因为官方的镜像为了节省带宽,镜像中未含完整版本的TeXLive,所以要继续安装 TeXLive。

1、进入到容器sharelatex的命令行界面:

docker exec -it sharelatex bash 

2、进入到sharelatex容器的文件夹:

cd /usr/local/texlive

3、下载更新文件:

wget http://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh --no-check-certificate

4.执行更新操作:

sh update-tlmgr-latest.sh -- --upgrade

5.为了提高更新速度,配置国内更新源:

tlmgr option repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet/

6.执行更新操作:

tlmgr update --self --all # luaotfload-tool -fu

7.执行安装操作:

tlmgr install scheme-full

安装过程较慢,应该要安装4000多个包,耐心等待完成。

8.关闭重启Overleaf:

ctrl+c结束刚才起的容器,然后执行命令重启容器:

bin/start

四、配置管理员

在浏览器中,打开 http://ip:10808/launchpad,设置管理员邮箱和密码,然后进入首页登录账号

新建项目,输入:

\documentclass[UTF8]{ctexart}
\begin{document}
\rmfamily
\Huge 我正在使用Overleaf v2
\end{document}

发现已经可以编译中文了,手工。

参考:

Docker部署Overleaf包含中文字体与全套texlive镜像_docker overleaf-CSDN博客

保姆教程—在本地部署Overleaf - 知乎 (zhihu.com) 

OverLeaf v2 的入门及中文编辑 - LaTeX工作室 (latexstudio.net) 

overleaf的中文设置 - 简书 (jianshu.com) 

这篇关于Docker容器部署overleaf的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/941926

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

docker 重命名镜像的实现方法

《docker重命名镜像的实现方法》在Docker中无法直接重命名镜像,但可通过添加新标签、删除旧镜像后重新拉取/构建,或在DockerCompose中修改配置文件实现名称变更,感兴趣的可以了解一下... 目录使用标签(Tagging)删除旧的php镜像并重新拉取或构建使用docker Compose在Do

Java JUC并发集合详解之线程安全容器完全攻略

《JavaJUC并发集合详解之线程安全容器完全攻略》Java通过java.util.concurrent(JUC)包提供了一整套线程安全的并发容器,它们不仅是简单的同步包装,更是基于精妙并发算法构建... 目录一、为什么需要JUC并发集合?二、核心并发集合分类与详解三、选型指南:如何选择合适的并发容器?在多

python语言中的常用容器(集合)示例详解

《python语言中的常用容器(集合)示例详解》Python集合是一种无序且不重复的数据容器,它可以存储任意类型的对象,包括数字、字符串、元组等,下面:本文主要介绍python语言中常用容器(集合... 目录1.核心内置容器1. 列表2. 元组3. 集合4. 冻结集合5. 字典2.collections模块

docker编写java的jar完整步骤记录

《docker编写java的jar完整步骤记录》在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署,:本文主要介绍docker编写java的jar的相关资料,文中通过代... 目录all-docker/生成Docker打包部署文件配置服务A的Dockerfile (a/Docke

Spring Boot中获取IOC容器的多种方式

《SpringBoot中获取IOC容器的多种方式》本文主要介绍了SpringBoot中获取IOC容器的多种方式,包括直接注入、实现ApplicationContextAware接口、通过Spring... 目录1. 直接注入ApplicationContext2. 实现ApplicationContextA

linux部署NFS和autofs自动挂载实现过程

《linux部署NFS和autofs自动挂载实现过程》文章介绍了NFS(网络文件系统)和Autofs的原理与配置,NFS通过RPC实现跨系统文件共享,需配置/etc/exports和nfs.conf,... 目录(一)NFS1. 什么是NFS2.NFS守护进程3.RPC服务4. 原理5. 部署5.1安装NF

linux配置podman阿里云容器镜像加速器详解

《linux配置podman阿里云容器镜像加速器详解》本文指导如何配置Podman使用阿里云容器镜像加速器:登录阿里云获取专属加速地址,修改Podman配置文件并移除https://前缀,最后拉取镜像... 目录1.下载podman2.获取阿里云个人容器镜像加速器地址3.更改podman配置文件4.使用po

k8s容器放开锁内存限制问题

《k8s容器放开锁内存限制问题》nccl-test容器运行mpirun时因NCCL_BUFFSIZE过大导致OOM,需通过修改docker服务配置文件,将LimitMEMLOCK设为infinity并... 目录问题问题确认放开容器max locked memory限制总结参考:https://Access