logo
0
0
WeChat Login
Forkfrommath-nwafu/share-latex, aheadmain8 commits, behindmain4 commits
feat: 更新开发环境配置和端口设置

Overleaf (ShareLaTeX) Community Edition - Full TeX Live Builder

本项目用于利用腾讯云 CNB (Cloud Native Build) 的构建能力,自动化构建包含 完整 TeX Live 环境 (scheme-full) 的 Overleaf 社区版 Docker 镜像。

核心目标

官方的 sharelatex 镜像只包含基础 TeX 包,导致:

  1. 缺少中文字体支持。
  2. 编译复杂论文时常报 package not found
  3. 每次重启容器需重新下载数 GB 的宏包,效率极低。

本仓库解决方案: 通过 CNB 流水线,将 scheme-full(全量包)预先打包进镜像中。部署时直接拉取即可使用,无需联网下载宏包,实现开箱即用


🏗 架构说明

本项目采用 构建与运行分离 的架构,确保数据安全与高性能:

  1. 公开仓库(本仓库)

    • 职责:只负责构建镜像。
    • 产物docker.cnb.cool/您的用户名/您的仓库名:full-v1
    • 安全不包含任何用户数据、数据库文件或敏感配置。
  2. 私有环境(部署端)

    • 职责:拉取镜像并运行服务。
    • 配置:通过 docker-compose.yml 注入环境变量和挂载持久化存储。

🚀 部署指南 (Run via Docker Compose)

在您的 私有机器私有 CNB 仓库 中,使用以下配置即可启动高性能 Overleaf 服务。

推荐配置 (High Performance)

适配 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

About

No description, topics, or website provided.
Language
Dockerfile100%