我已经尝试了好几个小时,无法在构建过程中弄清楚如何在Dockerfile中激活和切换anaconda环境。
这是初始代码:
FROM nvidia/cuda:10.1-cudnn7-devel-ubuntu16.04
# Set user
ENV SETUSER myuser
RUN useradd -m $SETUSER
USER $SETUSER
WORKDIR /home/$SETUSER
# Install Anaconda
RUN wget https://repo.anaconda.com/archive/Anaconda3-2019.03-Linux-x86_64.sh
RUN bash Anaconda3-2019.03-Linux-x86_64.sh -b
RUN rm Anaconda3-2019.03-Linux-x86_64.sh
# Set path to conda
ENV CONDA_ENV_NAME mynewenv
RUN /home/$SETUSER/anaconda3/condabin/conda create -q --name $CONDA_ENV_NAME python=3.6 && \
/home/$SETUSER/anaconda3/condabin/conda clean --yes --all
RUN /home/$SETUSER/anaconda3/condabin/conda activate base #Just for testing anaconda environment
Run Code Online (Sandbox Code Playgroud)
首先,Docker中的anaconda会抱怨外壳设置不正确,因此在conda create命令之后添加了:
RUN /home/$SETUSER/anaconda3/condabin/conda init bash
RUN /bin/bash -c "source /home/$SETUSER/.bashrc"
RUN /home/$SETUSER/anaconda3/condabin/conda activate base
Run Code Online (Sandbox Code Playgroud)
在构建docker镜像后运行3个命令即可(即在调用docker run container-name之后交互运行),但是由于某种原因,在构建 …
我已经做了一些搜索,看起来 docker 容器内不支持符号链接,是否有解决方法?我还使用了一个挂载到我的主目录(在主机上)的卷,这是持久的。
加载容器时,主目录中的现有符号链接不起作用。我什至尝试在容器内创建符号链接,这也不起作用。
编辑:我正在玩安装 >1 卷,并且可能已经找到了一些东西。如果我安装了一个镜像符号链接路径的卷,那么它似乎可以工作。例如,如果我有一个数据文件夹符号链接到容器内 /work 目录上的 /media/disk1(并且 /work 映射到主机上的 /home),我可以挂载另一个附加到 /media/disk1 的卷/work/data,(和 /media/disk1 是主机上 /home/data 的符号链接),然后符号链接在容器内工作!