Создайте собственное изображение с помощью интерфейса Kubeflow jupyter по умолчанию

Я хотел бы знать, как создать собственный образ jupyter с интерфейсом запуска, который поставляется по умолчанию при установке kubeflow.

Следуя руководствам в официальной документации kubeflow, я смог создать собственное изображение с интерфейсом jupyter по умолчанию.

defaultinterface

Но я хотел бы создать с kubeflow jupyter default interface:

webappkueflow

Мне не удалось найти руководство, в котором используется базовое изображение по этой ссылке, то есть изображение с измененным интерфейсом:  image

Я тоже пытался использовать изображение, содержащееся в этой ссылке, в качестве базового изображения с именем jupyter-web-app, но он только сгенерировал изображение, которое не загружает интерфейс jupyter, после указания сервера ноутбука jupyter, чтобы он начал указывать на это изображение, я получаю только ошибку: «нет работоспособного восходящего потока». Он не загружается вообще.

Я думаю, это связано с тем, как он запускает контейнер, который отличается от документации kubeflow для создания собственного изображения:

В документации указано, что он должен содержать этот CMD по умолчанию:

ENV NB_PREFIX /

CMD ["sh","-c", "jupyter notebook --notebook-dir=/home/jovyan --ip=0.0.0.0 --no-browser --allow-root --port=8888 --NotebookApp.token='' --NotebookApp.password='' --NotebookApp.allow_origin='*' --NotebookApp.base_url=${NB_PREFIX}"]

jupyter-web-app имеет:

ENTRYPOINT ["python3"]
CMD ["main.py"]

Есть ли базовый образ для создания моего пользовательского образа с интерфейсом по умолчанию jupyter kubeflow? (Я знаю, что с точки зрения функциональности они выполняют ту же работу, но это сделано для удобства использования [не мешает работе пользователей]).

Вот мой Dockerfile:

# Base image Dockerfile (AWS Deep Learning Containers)
# https://github.com/aws/deep-learning-containers/blob/master/tensorflow/training/docker/2.2.0/py3/Dockerfile.cpu

FROM gcr.io/kubeflow-images-public/tensorflow-1.15.2-notebook-cpu@sha256:87c49f386263b8b3f4ba104617b888a97dad4dd166984c1e1d679435f1763ba1

# Install python3 packages from requirements file. Don’t install package dependencies.
# Run 'pip3 check' to verify if installed packages have compatible dependencies.
COPY requirements.txt /tmp

RUN pip3 --no-cache-dir install --no-deps --requirement /tmp/requirements.txt && \
    pip3 check || true

COPY custom_ssh_key /home/root/.ssh/id_rsa
COPY custom_ssh_key.pub /home/root/.ssh/id_rsa.pub

WORKDIR /root
ENV NB_PREFIX /
ENTRYPOINT ["tini", "--"]

CMD ["sh","-c", "jupyter notebook --notebook-dir=/home/${NB_USER} --ip=0.0.0.0 --no-browser --allow-root --port=8888 --NotebookApp.token='' --NotebookApp.password='' --NotebookApp.allow_origin='*' --NotebookApp.base_url=${NB_PREFIX}"]

Используя этот Dockerfile, я смог создать рабочий образ, но я хочу изменить интерфейс по умолчанию.

Когда я попытался использовать изображения, оптимизированные для aws, из этой ссылки, я получил Ошибка 401:

failed to solve with frontend dockerfile.v0: failed to create LLB definition: unexpected status code [manifests 1.2.0]: 401 Unauthorized

Изменил только команду dockerfile FROM на:

FROM 527798164940.dkr.ecr.us-west-2.amazonaws.com/tensorflow-1.15.2-notebook-cpu:1.2.0

person Danizavtz    schedule 13.01.2021    source источник


Ответы (1)


Я открыл тот же вопрос в официальном проекте kubeflow в Github.

На вопрос ответил DavidSpek

Чтобы сгенерировать изображение с нужным мне интерфейсом, мне просто нужно изменить последнюю строку с Dockerfile.

CMD ["sh","-c", "jupyter lab --notebook-dir=/home/${NB_USER} --ip=0.0.0.0 --no-browser --allow-root --port=8888 --NotebookApp.token='' --NotebookApp.password='' --NotebookApp.allow_origin='*' --NotebookApp.base_url=${NB_PREFIX}"]

И это решило мою проблему.

person Danizavtz    schedule 14.01.2021