在 Vercel 和 Netlify 上部署#

VercelNetfliy 是用于部署静态网站的流行托管平台。

它们使从现有 git 仓库托管静态网站变得容易且方便,并通过其 CDN 使它们广泛可用。

Netlify#

要将您自己的 JupyterLite 部署到 Netlify,您可以从 JupyterLite Demo 开始,通过从模板生成一个新的仓库。

然后添加一个 runtime.txt 文件,内容为 3.7,以指定 Python 3.7 作为依赖项。

最后,指定 jupyter lite build --contents content --output-dir dist 作为“构建命令”,并将 dist 作为“发布目录”。

netlify-build

您可能还想指定 --debug 标志以获取额外的日志消息。

deploy-logs

Vercel#

与 Netlify 一样,Vercel 可以连接到现有的 git 仓库,并在推送和 PR 事件(预览)时无缝部署静态文件。

这里的配置与 Netlify 非常相似。您可以指定相同的 jupyter lite build --contents content --output-dir dist 构建命令,并将 dist 配置为发布目录。

使用 micromamba 创建构建环境#

像 Netlify 和 Vercel 这样的托管平台的构建环境通常对构建机器上安装的 Python 版本控制有限。

这种情况在一段时间内一直存在,因为它们的构建镜像只包含 Python 3.6,而 JupyterLite 需要 Python 3.7+。在某些情况下,这可能会限制功能,尤其是在您想要对构建过程有更多控制时。

幸运的是,可以运行任意 bash 脚本,这提供了一个方便的逃生通道。

requirements-deploy.txt 文件中指定 Python 包,如果需要,还可以添加其他依赖项。

jupyterlab~=3.4
jupyterlite-core
jupyterlite-pyodide-kernel

然后创建一个新的 deploy.sh 文件,内容如下:

#!/bin/bash

yum install wget

wget -qO- https://micromamba.snakepit.net/api/micromamba/linux-64/latest | tar -xvj bin/micromamba

./bin/micromamba shell init -s bash -p ~/micromamba
source ~/.bashrc

# activate the environment and install a new version of Python
micromamba activate
micromamba install python=3.10 -c conda-forge -y

# install the dependencies
python -m pip install -r requirements-deploy.txt

# build the JupyterLite site
jupyter lite --version
jupyter lite build --contents content --output-dir dist

Micromamba 创建了一个新的自包含环境,这使得安装任何所需的软件包变得非常方便,而不会受到构建镜像的限制。

然后配置构建命令和输出目录,例如在 Vercel 上。

image

您可能还想指定 --debug 标志以获取额外的日志消息。

jupyter lite build --debug