Mamba 将软件包安装到错误的环境中
Mamba installing a package into wrong environment
背景是,我负责维护我们团队用于分析的精美 Docker 图片。它使用 Jupyter notebook image 作为基础,然后添加各种自定义、额外的包等
其中一位团队成员最近想 运行 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 env,但Tensorflow包已经安装到base env中,而不是tensorflow env。有人遇到过这种情况么?我可以验证,如果我登录到容器,tensorflow env 已经创建:它只是不包含 Tensorflow 包。
如果 运行 来自容器内部的 create
、activate
和 install
命令,我不会遇到这个问题。仅当我尝试在 Docker 文件中执行此操作时。
我使用 mamba 而不是 conda,因为考虑到安装的软件包数量,conda 需要永远 运行。事实上,尝试 运行 conda install tensorflow
会在 ~5 小时后崩溃。
不是 dockerfiles 方面的专家,但通常您可以使用安装命令的 -n
标志来指定安装的目标环境,如下所示:
mamba install -n tensorflow -y tensorflow=2.4.3
背景是,我负责维护我们团队用于分析的精美 Docker 图片。它使用 Jupyter notebook image 作为基础,然后添加各种自定义、额外的包等
其中一位团队成员最近想 运行 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 env,但Tensorflow包已经安装到base env中,而不是tensorflow env。有人遇到过这种情况么?我可以验证,如果我登录到容器,tensorflow env 已经创建:它只是不包含 Tensorflow 包。
如果 运行 来自容器内部的 create
、activate
和 install
命令,我不会遇到这个问题。仅当我尝试在 Docker 文件中执行此操作时。
我使用 mamba 而不是 conda,因为考虑到安装的软件包数量,conda 需要永远 运行。事实上,尝试 运行 conda install tensorflow
会在 ~5 小时后崩溃。
不是 dockerfiles 方面的专家,但通常您可以使用安装命令的 -n
标志来指定安装的目标环境,如下所示:
mamba install -n tensorflow -y tensorflow=2.4.3