无法使用conda forge部署docker解决方案

无法使用conda forge部署docker解决方案,docker,vagrant,conda,conda-forge,Docker,Vagrant,Conda,Conda Forge,我正在为我的应用程序部署docker解决方案。在我的docker文件中,我使用了多个conda forge来构建一些容器。对于某些容器,它工作得非常好,对于另一个容器,它会给出一个错误,我确信这与包无关,因为对于同一个包,它有时工作,而对于其他的则不工作 我曾尝试使用pip而不是conda,但这会导致其他错误,因为我最初在所有配置中都使用conda。此外,我还了解到运行conda update-all将解决此问题,对于pip安装程序,请运行pip安装-升级安装工具 这是我的docker文件的一部

我正在为我的应用程序部署docker解决方案。在我的docker文件中,我使用了多个conda forge来构建一些容器。对于某些容器,它工作得非常好,对于另一个容器,它会给出一个错误,我确信这与包无关,因为对于同一个包,它有时工作,而对于其他的则不工作

我曾尝试使用pip而不是conda,但这会导致其他错误,因为我最初在所有配置中都使用conda。此外,我还了解到运行conda update-all将解决此问题,对于pip安装程序,请运行pip安装-升级安装工具

这是我的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 
尝试将两个conda install命令组合成一个命令:RUN conda install-c conda forge happybase=1.1.0 requests kerberos-yes

我在安装命令拆分时遇到了类似的问题;问题是第一个版本导致了python版本的升级,而这又与conda install命令不兼容,导致了您看到的错误


我发现的另一个解决方法是添加Python3.6.8作为另一个安装参数。我正在安装的其中一个软件包必须具有python 3.7依赖项,这迫使它升级python,并破坏了conda安装。

实际上,该错误指示conda/bin/sh的路径错误

因此,向Dockerfile添加正确的路径将解决以下问题:

   ENV PATH /opt/conda/envs/env/bin:$PATH
这里有一个很好的相关主题参考,它建议在dockerfile中创建一个新的虚拟环境: