Mamba将包安装到错误的环境中



背景是,我负责维护一个花哨的Docker图像,这是我们的团队用于分析。它使用Jupyter笔记本映像作为基础,然后添加各种自定义,额外的软件包等。

一个团队成员最近想运行Tensorflow。没问题,我只需运行mamba install并将其添加到图像中。然而,这产生了一个问题:Tensorflow 2.4.3(最新版本)与R 4.1.1(也是最新版本)或生态系统中的其他版本不兼容,导致R降级到3.6.3。所以我创建了一个新环境并安装了TF:

FROM hongooi/jupytermodelrisk:1.0.0
RUN mamba create -n tensorflow --clone base
# Make RUN commands use the new environment
RUN echo "conda activate tensorflow" >> ~/.bashrc
SHELL ["/bin/bash", "--login", "-c"]
RUN mamba install -y 'tensorflow=2.4.3'

但是当我重建图像时,我发现虽然已经创建了tensorflow环境,但tensorflow包已经安装到基本环境中,而不是tensorflow环境。有人遇到过这种情况吗?我可以验证,如果我登录到容器,tensorflow环境已经创建:它只是不包含tensorflow包。

如果从容器内部运行create,activateinstall命令,我不会得到这个问题。只有当我尝试在Dockerfile中这样做时。

我使用mamba而不是conda,因为考虑到安装的包的数量,后者需要很长时间才能运行。事实上,尝试运行conda install tensorflow会在5小时后崩溃。

不是dockerfiles方面的专家,但一般情况下,您可以在install命令中使用-n标志来指定安装的目标环境,如下所示:

mamba install -n tensorflow -y tensorflow=2.4.3

最新更新