Я хотел бы знать, как создать собственный образ jupyter с интерфейсом запуска, который поставляется по умолчанию при установке kubeflow.
Следуя руководствам в официальной документации kubeflow, я смог создать собственное изображение с интерфейсом jupyter по умолчанию.
Но я хотел бы создать с kubeflow jupyter default interface
:
Мне не удалось найти руководство, в котором используется базовое изображение по этой ссылке, то есть изображение с измененным интерфейсом:
Я тоже пытался использовать изображение, содержащееся в этой ссылке, в качестве базового изображения с именем 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