Bash 运行conda激活不起作用。它总是显示出;运行';后重新启动shell;conda init'&引用,Dockerfile
我要建立一个cuda&anaconda docker文件,但是在尝试了很多次之后,它总是警告我这个错误 azure管道的日志 还有我的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 -
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