在 amd 芯片设备上部署
使用 toolkit 安装 overleaf
克隆仓库并进入文件夹
git clone https://github.com/overleaf/toolkit.git ./overleaf-toolkit
cd ./overleaf-toolkit
初始化配置
bin/init
此操作在 conf 文件夹中生成如下三个文件
overleaf.rc: 设置文件,variables.env: 环境变量文件version: 版本号文件
根据需要修改配置和环境变量文件即可. 比如如果想自己的实例是中文界面, 可以在variables.env中加上
OVERLEAF_SITE_LANGUAGE=zh-CN
然后创建容器
bin/up
如果没出现错误, 则按下 ^C 停止容器, 然后执行 bin/start 启动容器即可.
安装完整版的 texlive
为了不让 docker 镜像显得太大, 官方配备的 texlive 是阉割版的. 如果需要安装完整版的 texlive, 在 overleaf-toolkit 文件夹中运行如下命令进入容器.
bin/shell
运行如下命令安装完整版 texlive
tlmgr install scheme-full
为了保存修改, 我们先退出容器再提交镜像
docker commit sharelatex sharelatex/sharelatex:$(cat config/version)-with-texlive-full
echo $(cat config/version)-with-texlive-full > config/version
完成这些步骤后执行 bin/up 就不会重置 texlive 为阉割版了.
需要注意的是, 升级 Overleaf 后仍要重复执行以上步骤.
本小节内容可在官方文档中找到.
在 arm 芯片设备上部署
此方法也适用于 Mac Mini M系列芯片.
arm 镜像构建
由于官方镜像并不支持 arm 芯片的设备, 所以我们需要自己构建镜像. 首先在github上拉取项目
git clone https://github.com/overleaf/overleaf.git
cd overleaf/server-ce
为了能使用全功能的 texlive, 可以修改 Dockerfile-base 文件, 找到 && echo "selected_scheme scheme-basic" >> /install-tl-unx/texlive.profile \ 这一行, 将 scheme-basic 替换为 scheme-full, 然后执行下述命令构建镜像
make build-base
make build-community
使用 toolkit 构建容器
操作步骤与 amd 步骤基本相同, 在与 overleaf 同级的目录下拉取完 toolkit 的镜像后, 建议给构建的镜像打上标签
docker tag sharelatex/sharelatex:main sharelatex/sharelatex:$(cat config/version)-with-texlive-full
需要注意的是我们需要修改 overleaf.rc 文件中 mongo 的镜像为 arm64v8/mongo, 并且修改 config/version 中的版本号. 在此文章创作的当下, 如果使用的是 Mac Mini M系列芯片的设备部署, 执行 bin/up 后会出现 bug, 提示 Invalid MONGO_VERSION, 已经有大佬提出 PR 修复, 参见 https://github.com/overleaf/toolkit/pull/397, 按照 https://github.com/overleaf/toolkit/pull/397/commits/fca8fcd83bbcba90dea84b0f160e0ea37e9bc73c 修改即可.
更新相关
如果 overleaf 镜像更新的话, 我们需要在 overleaf 文件夹里面执行
git pull
然后重做一遍以上构建镜像的步骤, 并使用 toolkit 构建容器. 确认所有容器正常启动后, 执行
docker image prune -f
删除旧镜像.

Comments NOTHING