Интерактивный bash
Команда conda activate
является функцией bash и загружается только в интерактивных сеансах. DOCKERFILE уже делает эквивалент conda init
, то есть, добавляя conda.sh
к .bashrc
. Однако текущий SHELL /bin/bash -c
не загружается .bashrc
- для этого обычно требуется флаг -i
или -l
.
Активация Conda не требуется
Но это все не имеет значения, потому что нет необходимости активировать env с учетом текущего кода. Вместо этого установите все зависимости с самого начала (рекомендуется):
conda create -n simpledet -y python=3.7 cudatoolkit=10.
или хотя бы укажите env:
conda install -n simpledet -y cudatoolkit=10.
Спецификация среды
Если среда требует чем несколько пакетов, или что-то нужно из PyPI, то лучше использовать файл определения среды YAML и создать через него env. Файл примера:
simpledet.yml
name: simpledet
channels:
- defaults
dependencies:
- python=3.7
- cudatoolkit=10.
- pip
- pip:
- mxnet
Затем вы можете создать env с помощью:
COPY simpledet.yml /tmp/simpledet.yml
RUN conda env create -f /tmp/simpledet.yml