Этот является очень косвенным ответом на вопрос, но он работает для меня как шарм.
Из множества зависимостей существует большое подмножество, которое никогда не меняется. Мне всегда нужен питон 3,6, NumPy, панды, факел, ...
Таким образом, вместо кэширования conda, вы можете кэшировать Docker и повторно использовать базовый образ с уже установленными зависимостями:
FROM continuumio/miniconda3
WORKDIR /app
COPY environment.yml /app
# install package dependencies
RUN conda update conda
RUN conda env create -f environment.yml
RUN echo "source activate api_neural" > ~/.bashrc
ENV PATH /opt/conda/envs/env/bin:$PATH
Затем вы можете добавить дополнительную конфигурацию во второй dockerfile:
FROM base_deps
# add additional things on top, here I'm running some python in the conda env
RUN /bin/bash -c 'echo $(which python);\
source activate api_neural;\
python -c "import nltk; nltk.download(\"wordnet\"); nltk.download(\"words\")";\
python -m spacy download en;\
python -c "from fastai import untar_data, URLs; model_path = untar_data(URLs.WT103, data=False)"'