Использование Tox внутри контейнера nvidia-docker - PullRequest
0 голосов
/ 02 апреля 2019

Я использовал контейнер Nvidia NGC Tensorflow для своего проекта (казалось, путь наименьшего сопротивления для запуска и работы с использованием Tensorflow на моем GPU).Мой текущий рабочий процесс:

1.) Запустите контейнер с помощью утилиты nvidia-docker

2.) Перейдите в каталог моего кода (мои локальные диски видны из контейнера)

3.) Работа с кодом

4.) (По-старому) Выполнение тестов носа из контейнера для выполнения моих тестов

Я принял решение перейти на Pytestи использовать токсикНасколько я понимаю, система Tox использует виртуальные среды для установки вашего модуля Python, а затем запускает тесты Pytest.

Если бы я установил Tensorflow вручную в виртуальной среде Conda или Python, то я мог бы получить доступ к чему-то вродефайл yaml, содержащий информацию о зависимостях, которую Tox может использовать для создания среды тестирования (если я правильно понимаю).Но в настоящее время эта информация о зависимостях находится только в моем Dockerfile, в котором есть какие дополнительные пакеты Python, которые нужно добавить к базовому образу Tensorflow.

Я не совсем понимаю, что будет лучшим способомработать с Pytest & Tox из контейнера Nvidia Docker. Похоже, что контейнер не использует какие-либо виртуальные среды, поэтому все изменения, которые сделал Nvidia, похоже, относятся к системной версии Python3.5, который запускается в контейнере.

Dockerfile, который я использую:

FROM nvcr.io/nvidia/tensorflow:19.01-py3

#For running the neural style example: https://github.com/anishathalye/neural-style
RUN pip install pillow
RUN pip install tox
RUN pip install -U pytest
RUN pip install nose
RUN pip install coverage
RUN pip install logger
RUN pip install scikit-image

RUN pip install keras

#For runing Jupyter notebooks within container
RUN pip install jupyter
EXPOSE 8888

COPY .vimrc /root/.vimrc
...