【问题标题】:Docker image build fails. Jupyter command "nbconvert" cannot find ipython notebookDocker 映像构建失败。 Jupyter 命令“nbconvert”找不到 ipython 笔记本
【发布时间】:2018-08-29 13:09:50
【问题描述】:

我创建了一个 Dockerfile,目的是在 Docker 中执行 Jupyter notebook。如下所示

FROM ubuntu:latest

RUN apt-get update && apt-get install -y python3 \
    python3-pip

RUN pip3 install jupyter

WORKDIR /home/me/JupyterOneClick/
RUN pwd

RUN jupyter nbconvert --to python Hello.ipynb
RUN python Hello.py
#CMD ["python","Hello.py"]

但是,在构建此映像时出现错误(docker build -t jupyter:latest。)

步骤 6 将 jupyter notebook 转换为 python 文件,步骤 7 执行该 python 文件。

步骤 6/7:运行 jupyter nbconvert --to python Hello.ipynb ---> 运行在 8516a27588f6 [NbConvertApp] 警告 |模式“Hello.ipynb”不匹配任何文件 此应用程序用于将笔记本文件 (*.ipynb) 转换为其他各种 格式。

jupyter notebook 存储在 /home/me/JupyterOneClick 中。

此时,构建过程停止。

我还尝试将步骤 6 和 7 移动到 shell 脚本中,并从 Dockerfile 运行脚本,通过它我能够构建映像,但无法运行它,因为它找不到 shell 脚本。

命令 '/bin/sh -c chmod +x ./script.sh' 返回一个非零代码:1

谁能告诉我如何解决这个问题?我是初学者,但据我了解,RUN 创建了一个新的临时容器,因此无法找到该文件。

对于任何想知道的人,我没有使用 kubeflow 或 JupyterHub,因为它们允许新的开发环境,我必须部署现有的笔记本。

【问题讨论】:

  • 在运行 jupyter 命令之前,您必须使用 ADD 将 Hello.ipynb 添加到 Dockerfile。顺便说一句,如果您有一个现有的笔记本,您可以使用卷并将其附加到容器以与 JupyterHub 一起使用。
  • 感谢您的评论。我想我必须在运行 dockerfile 之前将文件复制到容器中。但是,您能否详细说明我如何使用卷将它们附加到容器?我在这里问了同样的问题,stackoverflow.com/questions/52054646/…,你能不能看看回答一下?

标签: python docker jupyter-notebook dockerfile jupyter


【解决方案1】:

我不是专家,但您似乎忘记了副本声明。 使用COPY ./Hello.ipynb /Hello.ipynb 而不是-- to python 你应该使用-- to script

【讨论】:

    猜你喜欢
    • 2020-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-26
    • 2015-10-15
    • 1970-01-01
    相关资源
    最近更新 更多