Как добавить Jupyter в образ рокера? - PullRequest
0 голосов
/ 11 января 2019

Я новичок в docker и пытаюсь добавить jupyter и python к своему docker изображению на основе Rocker (я хочу, чтобы оба python и R). Я смог установить python3 и jupyter с зависимостями. Изображение было успешно создано. После запуска контейнера у меня есть доступ к RStudio server через порт 7878, но, к сожалению, по порту 8888 jupyter не работает.

Мой Dockerfile выглядит так:

FROM rocker/rstudio:3.5.0

# Basic dependencies
RUN apt-get update && apt-get install -y \
      libcurl4-gnutls-dev \
      libssl-dev \
      libpng-dev \
      vim \
      nano \
      libxml2 \
      libxml2-dev \
      curl \
      gnupg2 \
      build-essential libssl-dev \
      libpq-dev \
      ssh
SHELL ["/bin/bash", "-c"]

# Install python3 and pip3
RUN apt-get update && apt-get install -y python3 \
    python3-pip \
    build-essential

# Install jupyter
RUN pip3 install jupyter

EXPOSE 8888
RUN mkdir /notebooks
CMD jupyter notebook --no-browser --ip 0.0.0.0 --allow-root --port 8888 /notebooks

CMD ["/init"]

Сборка и запуск:

docker build -f Dockerfile -t user/my_docer:1.0 .
docker run -d --name my_docker -p 8787:8787 -p 8888:8888 -v `pwd`:/mnt user/my_docer:1.0

1 Ответ

0 голосов
/ 11 января 2019

Вы не можете использовать несколько CMD инструкций - вторая переопределяет первую. Если вам нужно запустить несколько процессов в вашем контейнере, , что считается плохой практикой , лучше используйте программное обеспечение, такое как supervisord.

Другой вариант - поместить все вещи в одну CMD инструкцию, такую ​​как

CMD ["/bin/bash", "-c", "'jupiter blahblah && /init'"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...