我正在为我的应用程序部署一个docker解决方案。在我的docker文件中,我使用了多个conda-forge来构建一些容器。它在一些容器上工作得很好,对于另一个容器,它会给出一个错误,我确信这不是关于包的问题,因为对于同一个包,它有时是有效的,而对于其他容器则不是。
我尝试使用pip而不是conda,但这导致了其他错误,因为我最初在所有配置中都使用conda。另外,我读到过RUN conda update --all可以解决这个问题,而对于pip设置,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 发布于 2019-08-16 06:50:43
实际上,该错误指示conda /bin/sh的错误路径。
因此,在Dockerfile中添加正确的路径可以解决以下问题:
ENV PATH /opt/conda/envs/env/bin:$PATH相关主题的一个很好的参考是这里,它建议在dockerfile中创建一个新的虚拟环境:
https://medium.com/@chadlagore/conda-environments-with-docker-82cdc9d25754
发布于 2019-07-12 04:03:06
尝试将两个conda install命令组合为一个命令:RUN conda install -c conda-forge happybase=1.1.0 requests-kerberos --yes。
我在install命令split中遇到了类似的问题;原来问题是第一个命令导致python版本升级,这反过来与conda install命令不兼容-导致您看到的错误。
我发现的另一个解决办法是添加python 3.6.8作为另一个安装参数。我正在安装的某个包必须具有Python3.7依赖项,这会迫使它升级python,并破坏conda install。
https://stackoverflow.com/questions/56942355
复制相似问题