Невозможно развернуть докер с помощью conda-forge
Я развертываю докер-решение для своего приложения. В моем файле Docker я использовал несколько conda-forge для создания некоторых контейнеров. Он работал очень хорошо для некоторых контейнеров, и выдает ошибку для другого, и я уверен, что речь идет не о пакете, потому что иногда для одного пакета он работает, а для других нет.
Я попытался использовать pip вместо conda, но это привело к другим ошибкам, поскольку я изначально использовал conda для всех своих настроек. Кроме того, я читал, что RUN conda update --all
решит это и для настройки пипса RUN pip install --upgrade setuptools
Это часть моего файла Docker:
FROM dockerreg.cyanoptics.com/cyan/openjdk-java8:1.0.0
RUN conda update --all
RUN conda install -c conda-forge happybase=1.1.0 --yes
RUN conda install -c conda-forge requests-kerberos
RUN pip install --upgrade setuptools
RUN pip install --upgrade pip
RUN pip install kafka-python
RUN pip install requests-negotiate
Ожидаемый результат - успешная сборка всех контейнеров, но я получаю следующее:
---> Using cache
---> 82f4cd49037d
Step 14 : RUN conda install -c conda-forge happybase=1.1.0 --yes
---> Using cache
---> c035b960aa3b
Step 15 : RUN conda install -c conda-forge requests-kerberos
---> Running in 54d869afcd00
Traceback (most recent call last):
File "/opt/conda/bin/conda", line 7, in <module>
from conda.cli import main
ModuleNotFoundError: No module named 'conda'
The command '/bin/sh -c conda install -c conda-forge requests-
kerberos' returned a non-zero code: 1
make: *** [dockerimage] Error 1
2 ответа
На самом деле ошибка указывает на неправильный путь для Conda /bin/sh
Поэтому добавление правильного пути к Dockerfile решит проблему следующим образом:
ENV PATH /opt/conda/envs/env/bin:$PATH
Хорошая ссылка на смежную тему здесь, где предлагается создать новую виртуальную среду в файле Docker:
https://medium.com/@chadlagore/conda-environments-with-docker-82cdc9d25754
Попробуйте объединить два conda install
Команды в одну команду: RUN conda install -c conda-forge happybase=1.1.0 requests-kerberos --yes
,
Я столкнулся с подобной проблемой с разделением команд установки; Оказывается, проблема заключалась в том, что первый вызвал обновление версии Python, что, в свою очередь, было несовместимо с conda install
команда - вызывает ошибку, которую вы видите.
Другой обходной путь, который я нашел, должен был добавить python 3.6.8
в качестве другой установки арг. У одного из устанавливаемых мной пакетов должна была быть зависимость от python 3.7, что заставляло его обновлять python и ломало conda install
,