基于Docker与Docker Compose搭建Common Lisp-Jupyter环境求助
Docker + Docker Compose 搭建 Common Lisp Jupyter 环境分步指南
问题背景
需要在本地通过Docker与Docker Compose搭建yitzchak开发的common-lisp-jupyter环境,实现Jupyter Notebook运行Common Lisp。此前自行编写的Dockerfile和docker-compose.yml存在配置问题,以下是修正后的完整配置与搭建步骤。
修正后的配置文件
Dockerfile
# 使用Ubuntu 22.04作为基础镜像,兼容性更强 FROM ubuntu:22.04 # 设置环境变量避免交互安装提示 ENV DEBIAN_FRONTEND=noninteractive # 更新系统并安装核心依赖:Python、Jupyter、SBCL(Common Lisp实现)、Git、构建工具 RUN apt update && apt install -y \ python3 python3-pip \ sbcl git build-essential \ && pip3 install --upgrade pip \ && pip3 install jupyter # 克隆common-lisp-jupyter仓库并完成内核安装 RUN git clone https://github.com/yitzchak/common-lisp-jupyter.git /tmp/common-lisp-jupyter \ && cd /tmp/common-lisp-jupyter \ # 用SBCL执行安装脚本 && sbcl --load install.lisp --eval '(quit)' \ # 清理临时文件减小镜像体积 && rm -rf /tmp/common-lisp-jupyter # 创建工作目录并开放权限 RUN mkdir -p /notebooks && chmod 777 /notebooks WORKDIR /notebooks # 暴露Jupyter默认端口 EXPOSE 8888 # 启动Jupyter Notebook,允许外部访问,禁用token验证(如需验证可删除--NotebookApp.token=''参数) CMD ["jupyter", "notebook", "--ip=0.0.0.0", "--no-browser", "--allow-root", "--NotebookApp.token=''"]
docker-compose.yml
version: '3.8' services: common-lisp-jupyter: build: . volumes: # 挂载本地notebooks目录到容器,实现笔记本文件持久化 - ./notebooks:/notebooks ports: # 端口映射:本地8888端口对应容器8888端口 - "8888:8888" container_name: common-lisp-jupyter restart: unless-stopped
分步搭建步骤
创建项目目录
- 本地新建空目录并进入:
mkdir common-lisp-jupyter-docker && cd common-lisp-jupyter-docker - 新建
notebooks子目录用于存储Jupyter笔记本:mkdir notebooks
- 本地新建空目录并进入:
放置配置文件
- 将上述修正后的
Dockerfile和docker-compose.yml放入项目根目录。
- 将上述修正后的
构建并启动容器
- 执行命令构建镜像并后台启动容器:
docker-compose up --build -d--build:强制重新构建镜像-d:让容器在后台运行
- 执行命令构建镜像并后台启动容器:
验证容器状态
- 执行命令确认容器正常运行:
状态显示docker-compose psUp即为启动成功。
- 执行命令确认容器正常运行:
访问Jupyter Notebook
打开浏览器访问
- 在本地浏览器输入地址:
http://localhost:8888即可进入Jupyter界面。 - 如果保留了token验证(删除了
--NotebookApp.token=''),需查看容器日志获取token:
从日志中复制类似docker-compose logs common-lisp-jupyterhttp://127.0.0.1:8888/?token=xxxxxx的链接中的token,输入到浏览器的验证框即可。
- 在本地浏览器输入地址:
创建Common Lisp笔记本
- 进入Jupyter界面后,点击右上角
New按钮,选择Common Lisp选项,即可创建支持Common Lisp的笔记本,编写代码运行。
- 进入Jupyter界面后,点击右上角
内容的提问来源于stack exchange,提问作者vladandreevza5557
相关产品推荐
相关产品推荐

