!!!不要直接fork项目,建议把核心的3个文件复制自己创建私密仓库!!! .cnb.yml docker-Compose cos.yml
本项目用于利用腾讯云 CNB (Cloud Native Build) 的构建能力,自动化构建包含 完整 TeX Live 环境 (scheme-full) 的 Overleaf 社区版 Docker 镜像。
官方的 sharelatex 镜像只包含基础 TeX 包,导致:
package not found。本仓库解决方案:
通过 CNB 流水线,将 scheme-full(全量包)预先打包进镜像中。部署时直接拉取即可使用,无需联网下载宏包,实现开箱即用。
本项目采用 构建与运行分离 的架构,确保数据安全与高性能:
公开仓库(本仓库):
docker.cnb.cool/您的用户名/您的仓库名:full-v1私有环境(部署端):
docker-compose.yml 注入环境变量和挂载持久化存储。在您的 私有机器 或 私有 CNB 仓库 中,使用以下配置即可启动高性能 Overleaf 服务。
适配 16核 32G 内存环境,已做针对性调优。
创建一个 docker-compose.yml 文件:
version: '2.2'
services:
sharelatex:
# ⚠️ 请修改为本项目构建出的实际镜像地址
# 格式:docker.cnb.cool/<用户名>/<仓库名>:full-v1
image: docker.cnb.cool/math-nwafu/share-latex:full-v1
container_name: sharelatex
restart: always
depends_on:
- mongo
- redis
ports:
- "80:80"
volumes:
# 数据持久化
- /persist/overleaf-data:/var/lib/sharelatex
# 【优化】挂载内存盘加速编译临时文件读写
- type: tmpfs
target: /tmp
environment:
SHARELATEX_MONGO_URL: mongodb://mongo/sharelatex
SHARELATEX_REDIS_HOST: redis
SHARELATEX_BEHIND_PROXY: "true"
SHARELATEX_SECURE_COOKIE: "false"
# === 性能调优 (16C/32G) ===
# 释放 Node.js 内存限制至 8GB
NODE_OPTIONS: "--max-old-space-size=8192"
# 延长编译超时时间至 5分钟
SHARELATEX_COMPILE_TIMEOUT: "300"
# 提高最大上传限制至 500MB
SHARELATEX_MAX_UPLOAD_SIZE: "524288000"
# === 敏感信息配置 (推荐使用环境变量) ===
SHARELATEX_APP_NAME: "${SHARELATEX_APP_NAME}"
SHARELATEX_ADMIN_EMAIL: "${SHARELATEX_ADMIN_EMAIL}"
mongo:
image: mongo:4.4
container_name: mongo
restart: always
volumes:
- /persist/mongo-data:/data/db
# 限制 MongoDB 缓存为 8GB,预留内存给 TeX 编译
command: --wiredTigerCacheSizeGB 8
redis:
image: redis:6
container_name: redis
restart: always
volumes:
- /persist/redis-data:/data
# 开启 AOF 持久化
command: redis-server --appendonly yes