在`jupyter / datascience-notebook`中安装os软件包

时间:2018-11-07 10:03:29

标签: docker

我正在使用此docker image构建自己的一个。一切正常,我不需要安装numpy, pandas, scipy, ... etc,这很耗时。感谢这项工作背后的许多人。

我通常使用root来生成图像并在container内执行程序。但是这次我在其他image之上运行,并且有一个限制。

问题:
我必须安装os软件包。 openssh-client将用于执行keyscan,我将能够从Internet提取依赖项

The document

  

-e GRANT_SUDO = yes-指示启动脚本授予NB_USER用户无密码sudo功能。您不需要此选项   允许用户conda或pip安装其他软件包。这个   选项很有用,但是当您希望赋予$ NB_USER功能   使用apt安装OS软件包或在其中修改其他root拥有的文件   容器。为使此选项生效,您必须运行   带有--user root的容器。 (start-notebook.sh脚本将   在将$ NB_USER添加到sudoers中后,请选择$ NB_USER。)仅应启用   如果您信任用户或容器正在运行,则为sudo   隔离的主机。

然后我尝试将其与DockerFiledocker-compose.yml如下使用

version: '3.7'
services:
  webapp:
    build:
      context: ./
      dockerfile: DockerFile/local/DockerFile
    environment:
      - GRANT_SUDO=yes
      - user=root
    volumes:
      - .:/app
    ports:
      # 8888 for jupyter notebook
      # 5000 for flask development server
      - "8888:8888"
      - "5000:5000"

networks:
  overlay:

DockerFile

FROM jupyter/datascience-notebook
WORKDIR /app

RUN sudo apt-get update

RUN mkdir ~/.ssh
COPY id_rsa /home/jovyan/.ssh
RUN ssh-keyscan github.com >> ~/.ssh/known_hosts

COPY productions.txt .
RUN pip install -r productions.txt

它引发错误

$ docker-compose build
WARNING: Some networks were defined but are not used by any service: overlay
Building webapp
Step 1/9 : FROM jupyter/datascience-notebook
 ---> a35774727dc0
Step 2/9 : MAINTAINER Hbot.io
 ---> Using cache
 ---> 9b4320e836f8
Step 3/9 : WORKDIR /app
 ---> Using cache
 ---> fdcc9e1b48c3
Step 4/9 : RUN sudo apt-get update
 ---> Running in 0e43ba200881
sudo: no tty present and no askpass program specified
ERROR: Service 'webapp' failed to build: The command '/bin/sh -c sudo apt-get update' returned a non-zero code: 1

问题:
如何通过DockerFile在此映像上安装os软件包?

0 个答案:

没有答案