Занятия будут проходить в ОС Ubuntu 18.04 LTS. Установка необходимых баз данных (Mongo, Postgres, Redis, etc.) с помощью утилиты виртуализации Docker.
Перед работой с командной строкой обновим список пакетов - нужно выполнить в консоли команду:
sudo apt-get update && sudo apt-get -y upgrade
Эта команда обновит пакетный менеджер apt-get. После этого установить менеджер пакетов pip и вспомогательные утилиты (unzip, git). Пакет pip - это менеджер пакетов python, его помощью можно будет устанавливать python библиотеки. Утилита unzip - программа для распаковки архивов.:
sudo apt-get install python-pip unzip git
Теперь скачиваем репозиторий курса
git clone https://github.com/Dju999/data_analysis.git
Для проверки установки выполним команду
docker run hello-world
Если не получилось - установим docker, согласно Инструкции тут
Кроме докера поставим docker-compose
sudo apt-get install docker-compose
Подготовка завершена! Один раз проделав этот пункт, можно к нему больше не возвращаться
Переходим в корневую директорию репозитория
cd data_analysis
Запускаем сборку контейнера, консоли побежит информация об установке системных пакетов.
docker build -t ds_docker:latest .
Запускаем сборку окружения pipenv
docker run --volume $(pwd)/app:/www/app -it --rm ds_docker:latest pipenv
В результате в репозитории появится окружение .venv, в котором будут запускаться ноутбуки. Выхлоп команды:
Installing dependencies from Pipfile.lock (5fe059)… 🐍 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 54/54 — 00:00:25 To activate this project's virtualenv, run pipenv shell. Alternatively, run a command inside the virtualenv with pipenv run.
Запускаем сеанс jupyter notebook
:
docker run --volume $(pwd)/app:/www/app -it --rm ds_docker:latest jupyter
Выхлоп консоли
[I 04:34:40.569 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret [I 04:34:40.766 NotebookApp] Serving notebooks from local directory: /www/app [I 04:34:40.766 NotebookApp] The Jupyter Notebook is running at: [I 04:34:40.766 NotebookApp] http://(970e0486f4cb or 127.0.0.1):8888/?token=490f1634bc9aac268b637e69ff284c28fddab00404914b40
Для проверки открываем в браузере страницу, на которой будт форма для ввода токена
http://127.0.0.1:8889
После ввода токена будет запущен сеанс Jupyter Notebook.
Если контейнер не стартует с ошибкой
docker: Error response from daemon: Conflict. The container name "/netology-postgres" is already in use by container "2a99cb6629b78e7b5b6747a9bd453263940127909d91c8517e9ee0b230e60768". You have to remove (or rename) that container to be able to reuse that name.
То контейнер уже создан и можно стартовать его
sudo docker start 2a99cb6629b78e7b5b6747a9bd453263940127909d91c8517e9ee0b230e60768
Если не помогло - надо бы остановить все запущенные докер-образы и удалить их
docker stop $(sudo docker ps -a -q) docker rm $(sudo docker ps -a -q)
Удаление всех образов
docker rmi $(docker images -q)
Параметры docker run, остальные параметры тут
--name - Assign a name to the container
-d, --detach - Run container in background and print container ID
-e - устанавливаем переменную среды
-it - запустить интеракцивный терминал