Bash 运行conda激活不起作用。它总是显示出;运行';后重新启动shell;conda init'&引用,Dockerfile

Bash 运行conda激活不起作用。它总是显示出;运行';后重新启动shell;conda init'&引用,Dockerfile,bash,anaconda,dockerfile,conda,Bash,Anaconda,Dockerfile,Conda,我要建立一个cuda&anaconda docker文件,但是在尝试了很多次之后,它总是警告我这个错误 azure管道的日志 还有我的Dockerfile: FROM rogerchen/simpledet:cuda10 as cuda WORKDIR /app ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 ENV PATH /opt/conda/bin:$PATH RUN apt-get update \ && apt-get install -

我要建立一个cuda&anaconda docker文件,但是在尝试了很多次之后,它总是警告我这个错误

azure管道的日志

还有我的Dockerfile:

FROM rogerchen/simpledet:cuda10 as cuda
WORKDIR /app

ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
ENV PATH /opt/conda/bin:$PATH

RUN apt-get update \
    && apt-get install -y wget git make python3-dev libglib2.0-0 libsm6 libxext6 libxrender-dev python3-pip \
    && apt-get clean

RUN wget --quiet https://repo.anaconda.com/archive/Anaconda3-5.3.1-Linux-x86_64.sh -O ~/anaconda.sh && \
    /bin/bash ~/anaconda.sh -fbp /opt/conda && \
    rm ~/anaconda.sh && \
    ln -s /opt/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh && \
    echo ". /opt/conda/etc/profile.d/conda.sh" >> ~/.bashrc && \
    echo "conda activate base" >> ~/.bashrc

SHELL ["/bin/bash", "-c"]

RUN conda update conda -y

RUN conda create -n simpledet python=3.7  -y
RUN conda init bash
RUN conda activate simpledet
RUN conda install cudatoolkit=10.
在“激活”之前有“运行conda init bash”。希望大家能给我一些建议。提前感谢。

交互式bash
conda activate
命令是bash函数,仅在交互式会话中加载。DOCKERFILE已经执行了与
conda init
等效的操作,即将
conda.sh
添加到
.bashrc
中。但是,当前SHELL
/bin/bash-c
没有加载
。bashrc
-通常需要一个
-i
-l
标志

康达激活是不必要的 但这一切都离题了,因为在给定当前代码的情况下,没有理由必须激活env。相反,从一开始就安装所有依赖项(推荐):

或者至少指定环境:

conda install -n simpledet -y cudatoolkit=10.
环境规范 如果环境需要几个以上的包,或者需要PyPI中的某些东西,那么最好使用YAML环境定义文件并通过该文件创建环境。示例文件:

simpledet.yml

name: simpledet
channels:
 - defaults
dependencies:
 - python=3.7
 - cudatoolkit=10.
 - pip
 - pip:
   - mxnet
然后,可以使用以下工具创建环境:

COPY simpledet.yml /tmp/simpledet.yml
RUN conda env create -f /tmp/simpledet.yml

在安装cudatoolkit之后,我希望通过pip3安装mxnet。所以我不知道如何构造Dockfile。有没有办法默认启用“conda init”?@Echo安装cudatoolkit后,我希望通过pip3安装mxnet。所以我不知道如何建造这个温顺的文件。康达没有这个包裹吗?@AMC嗨,上面的答案对我来说没问题。最后,我放弃使用conda,因为使用conda,我选择了系统中的Python 3。我的docker文件也是如此,希望它能起作用you@Echo因为有了康达,我选择了有系统的蟒蛇3。你是什么意思?除非绝对必要,否则请不要以图像形式共享信息。见:。
COPY simpledet.yml /tmp/simpledet.yml
RUN conda env create -f /tmp/simpledet.yml