我的 Python 工作区根目录中 .devcontainer 文件夹中的 Docker 文件如下所示
FROM mcr.microsoft.com/vscode/devcontainers/miniconda:0-3
RUN apt-get update
RUN export DEBIAN_FRONTEND=noninteractive
RUN apt-get -y install --no-install-recommends make
RUN apt-get -y install gcc git-lfs python3-dev build-essential
# Copy environment.yml (if found) to a temp location so we update the environment. Also
# copy "noop.txt" so the COPY instruction does not fail if no environment.yml exists.
COPY environment.yml* .devcontainer/noop.txt /tmp/conda-tmp/
RUN if [ -f "/tmp/conda-tmp/environment.yml" ]; then /opt/conda/bin/conda env update --name base --file /tmp/conda-tmp/environment.yml; fi
RUN rm -rf /tmp/conda-tmp
我希望这将实现的是
- Conda 本身将被更新和
- 将创建我的 environment.env 文件中的 conda 环境。
事实上,这两种情况都不会发生。
当我让 VSCode 构建 Docker 映像并在生成的容器中重新打开我的工作区时,只列出了一个 conda 环境(base)并且它尚未更新,即我仍然必须运行命令
conda update --name base conda --channel anaconda
conda env create --file environment.yml
为什么我的 Dockerfile 中的 conda 内容没有持久化到容器中?还是我在 Dockerfile 中所做的事情有问题(我在日志中看不到错误)?