LINUX.ORG.RU

Как добавить свое виртуальное окружение в Jupyter Notebook в Docker

 ,


0

2

На хосте путем экспериментов, я пришел к такому рецепту:

# Create virtual environment
$ python -m ~/.venvs/test

# Activate it
$ source ~/.venvs/test/bin/activate

# Install ipykernel
(test)$ pip install ipykernel

# Add new kernel
(test)$ python -m ipykernel install --user --name 'test-venv'

Но я что-то на многообразие образов и не знаю какой использовать… У кого-нибудь есть рецепт для докера?

★★

А зачем тебе виртуальное окружение внутри контейнера? Ставть без него.

ymn ★★★★★
()
Ответ на: комментарий от ymn

шедевральное калище. нужно что-то универсальное, чтобы свои ядра добавлять. надо попробовать каталог с venvs’ами примонтировать, а так же узнать где ядра хранятся в образе, далее активировать среду из консоли контейнера и «поставить ядро»

tz4678 ★★
() автор топика

А что за задача такая, что нужно в докере иметь несколько виртуальных окружений? Сейчас для создания тестовых или боевых задач создаются контейнеры из какого-то своего образа.

dicos ★★
()
Ответ на: комментарий от dicos

я по старинке через системуде запустил. у меня такой подход: базы и админки к ним я в докере запускаю. это мой docler-compose.yml:

~ via ⬢ v16.6.2 on ☁️ tz4678@gmail.com 
λ cat workspace/docker-stack/docker-compose.yml                  
version: '3.8'

services:
  postgres:
    image: postgres:alpine
    env_file: .env
    networks:
      - postgres-network
    ports:
      - '5432:5432'
    restart: unless-stopped
    volumes:
      - pgdata:/var/lib/postgresql/data:rw

  pgadmin:
    image: dpage/pgadmin4
    depends_on:
      - postgres
    env_file: .env
    networks:
      - postgres-network
    ports:
      - "5050:80"
    restart: unless-stopped
    volumes:
      - pgadmin-data:/var/lib/pgadmin:rw

  redis:
    image: redis:alpine
    networks:
      - redis-network
    ports:
      - "6379:6379"
    restart: unless-stopped
    volumes:
      - redis-data:/var/lib/redis:rw

  #  wiki:
  #    image: requarks/wiki:2
  #    depends_on:
  #      - postgres
  #    env_file: .env
  #    environment:
  #      DB_TYPE: postgres
  #      DB_HOST: postgres
  #      DB_PORT: 5432
  #      DB_USER: wikijs
  #      DB_PASS: wikijsrocks
  #      DB_NAME: wiki
  #    networks:
  #      - postgres-network
  #    restart: unless-stopped
  #    ports:
  #      - "3000:3000"

  # Bash Language Server
  explainshell:
    image: spaceinvaderone/explainshell
    ports:
      - "5000:5000"
    restart: unless-stopped

# это дерьмище дохера весит
#   jupyter-notebook:
    # image: jupyter/datascience-notebook:33add21fab64
    # environment:
    #   - "JUPYTER_ENABLE_LAB=yes"
    # volumes:
    #   - ${HOME}/workspace:/home/jovyan/work
    # ports:
    #   - "8888:8888"
#     restart: unless-stopped

# постоянное хранене данных (по-молчанию: /var/lib/docker/volumes)
volumes:
  pgadmin-data: {}
  pgdata: {}
  redis-data: {}

networks:
  postgres-network: {}
  redis-network: {}

я хотел все что мне нужно для работы в докер засунуть, чтобы потом на разных машинах разворачивать, да и в изолированном конейтенер с преднастроенным приложением проблем меньше

tz4678 ★★
() автор топика
Ответ на: комментарий от tz4678

А это юпитер:

λ cat ~/.config/systemd/user/jupyterlab.service
[Unit]
Description=Jupyter Lab Service

[Service]
Type=simple
ExecStart=jupyter lab --no-browser --port 8888  --LabApp.token=''
WorkingDirectory=/home/sergey/workspace
Restart=on-failure
RestartSec=10

[Install]
WantedBy=default.target

Мне виртуальные окружения нужны для экспериментов. Ставить пакеты в систему мне религия не позволяет, то что где-то остаются хвосты после удаления либ, и те занимают лишнее место, мешает мне спать. Я все ставлю через yay (хотя все базы и pgdamin можно через него поставить, но тогда придется извращаться с подключением к базе из докер контейнеров)

tz4678 ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.