ghcr.io 镜像仓库来拉取所需的 ayakaleaf-pro 和 TeX Live 镜像。这并不是问题,因为 Docker 提供了导出和导入镜像的工具,可以帮助你完成离线/隔离网络部署。
总体而言,你需要在一台能联网的设备上下载所需镜像,将其导出到便携设备(或使用 SCP/Rsync 传输),然后在隔离网络的服务器上导入。
为此,你需要完成以下步骤:
- 在能联网的机器上拉取所有需要的镜像(
overleaf-pro、git-bridge、mongo、redis,以及用于沙盒编译的所有所需 TeX Live 镜像)docker pull ghcr.io/ayaka-notes/overleaf-pro:6.3.0docker pull ghcr.io/ayaka-notes/overleaf-pro/git-bridge:6.3.0(标签必须与overleaf-pro相同)docker pull mongo:8.0(请改为实际版本)docker pull redis:7.4(请改为实际版本)docker pull ghcr.io/ayaka-notes/texlive-full:2024.1(请改为实际版本)
- 对于拉取的每个镜像,你都需要将其导出为 .tar 文件。例如,
docker save ghcr.io/ayaka-notes/overleaf-pro:6.3.0 > overleaf-pro:6.3.0.tar - 使用你偏好的方式,将
.tar文件从联网机器传输到离线/隔离网络的服务器 - 对于每个 .tar 文件,使用
docker load命令从中加载镜像。例如,docker load < overleaf-pro:6.3.0.tar - 最后,运行
docker images命令,查看并确认镜像已成功加载且可用
默认情况下,当你运行
bin/up 命令时,Toolkit 会尝试自动拉取 config/variables.env 中通过 ALL_TEX_LIVE_DOCKER_IMAGES 设置的每个 TeX Live 镜像。由于你的部署处于隔离网络中,这将会失败——你可以在 config/overleaf.rc 中设置 SIBLING_CONTAINERS_PULL=false 来阻止这一行为。
