Невозможно развернуть докер с помощью 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,

Другие вопросы по тегам