Запустите Jupyter лабораторный контейнер для данного virtualenv - PullRequest
0 голосов
/ 28 октября 2019

Я хочу использовать лабораторию Jupyter внутри virtualenv на контейнере Docker. Я попытался запустить лабораторный контейнер Jupyter внутри virtualenv, но не смог, потому что переменная $ PATH неверна.

Справочная информация: я использую своего рода кластер hpc, поэтому у нас нет особых разрешений. Я должен запустить лабораторию Jupyter в док-контейнере только для чтения. Мои домашние и рабочие каталоги смонтированы. Но пользователи без полномочий root не могут создавать новые образы контейнеров (я планирую предложить это решение администратору).

Требования: я хочу установить новые пакеты, которые не предоставляются в контейнере только для чтения. И я хочу установить новые пакеты в указанное место.

Поэтому я хочу создать образ Docker, который запускает лабораторию Jupyter в virtualenv, если задана переменная среды $ VENV_PATH.

Я создалDockerfile и скрипт на основе образа jupyter / datascience-notebook на DockerHub .

Dockerfile:

FROM jupyter/datascience-notebook

USER $NB_UID
COPY start-venv-notebook.sh /usr/local/bin/
CMD ["start-venv-notebook.sh"]

start-venv-notebook.sh:

#!/bin/bash

set -e

if [[ ! -z "${VENV_PATH}" ]]; then
    abspath=$(realpath "${VENV_PATH}")
    if [ ! -e "${abspath}" ]; then
        # create venv
        python -m venv "${abspath}"
    fi
    # activate venv
    export VIRTUAL_ENV=$abspath
    export PATH="$abspath/bin:$PATH"
fi

# exec original CMD
exec /usr/local/bin/start-notebook.sh "$@"

И я хочу использовать этот контейнер следующим образом:

docker run -p 8888:8888 -e VENV_PATH=testvenv -e JUPYTER_ENABLE_LAB=yes venvjupyterlab

Однако, когда я запускаю этот контейнер, он не запускается в virtualenv. Я думаю, что причина от $ PATH. / opt / conda / bin добавляется откуда-то. Я не могу найти точку.

$ echo $PATH
/opt/conda/bin:/home/jovyan/testvenv/bin:/opt/conda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Пожалуйста, помогите мне или подскажите другие решения. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...