Anaconda 的 Docker 镜像构建

常见问题 admin 发布时间:2024-03-13 浏览:159 次

问题:如果Python项目用了Anaconda和pip进行环境的管理,想生成Docker镜像。因为Anaconda和Docker之间的交互不太好,直接在Anaconda或miniconda上生成Docker image,容易在配置环境时出问题。

思路:利用 Docker 构建镜像,应该最小化依赖。Anaconda是一个Python的集成开发环境,应该用于开发环境,而非生产环境。生产环境不推荐用Anaconda这种集成环境。


解决方案:用 conda 导出 environment.yml ,用 pip 导出 requirements.txt。用 FROM python:${PYTHON_VERSION}-slim as base 作为基础镜像。可以用 GPT-4 检查 environment.yml 中用 conda 生成,且不在 requirements.txt 中的包,即 

1.检查是否是 Windows 或操作系统环境的包; 

2.检查是否已经在安装 python 时自带了的; 

3.检查是否存在没有用到的包。

将剩下的包修改一下形式,放入requirements.txt中(如将- djangorestframework=3.14.0=pyhd8ed1ab_0 修改成 djangorestframework==3.14.0)。再用requirements.txt来生成环境,问题得到解决。

附注:1.本方案构建的Docker镜像并没有带全部的miniconda环境。

2.若 docker build 运行较慢可以用缓存。如在Dockerfile中,写入

RUN --mount=type=cache,target=/root/.cache/pip

    --mount=type=bind,source=requirements.txt,target=requirements.txt

    python -m pip install -r requirements.txt3.若遇到网络问题,可以在Docker Desktop中配置国内镜像。


在线咨询

点击这里给我发消息售前咨询专员

点击这里给我发消息售后服务专员

在线咨询

免费通话

24h咨询:18221674630


如您有问题,可以咨询我们的24H咨询电话!

免费通话

微信扫一扫

微信联系
返回顶部