gpt4 book ai didi

python - 容器内 conda 的目的是什么?

转载 作者:IT老高 更新时间:2023-10-28 21:38:22 24 4
gpt4 key购买 nike

我见过很多带有 conda 命令的 dockerfile 示例。还有预构建的 anaconda 和 miniconda 容器。我肯定错过了什么。

docker 不会替换 virtualenv 和 conda 吗?我不应该将所有依赖项都放在我的 dockerfile 中吗?我不明白在这里添加 anaconda 会得到什么。事实上,如果我没有使用所有 miniconda 包含的模块,我必须拉出一个 miniconda 容器,这似乎会使我的容器不必要地变大。

最佳答案

Docker 不会取代任何东西。这只是做事的一种方式。

不,您不应该将所有依赖项都放在 Dockerfile 中。一方面,除非我有充分的理由,否则我将从 virtualenv 运行 pip install 而不接触 Docker/*conda。您缺少 requirements.txt 不是一个很好的理由:)

Conda 于 2012 年问世——远远早于 Docker。由于 Python 在非程序员社区中拥有如此强大的追随者,我很少期望代码可以理解,更不用说某种类型的 DevOps 能力了。 Conda 是这个团队的完美解决方案。

使用 Docker,您可以通过 FROM python:xx, COPY 拥有一个功能强大的 Docker 环境。/workdirRUN pip install -r requirements.txt(假设您正在使用该文件 *ahem),但是您的开发人员可能需要一个卷以便他们可以工作(所以他们需要知道 --volume。另外,如果你在运行 Django,你需要配置端口(现在他们需要 --port 并且你需要 EXPOSE)。哦,Django 也可能需要一个数据库。现在你需要另一个容器,并且你正在编写一个 docker-compose 文件。

但是,如果您仅包含 requirements.txt,请从我几乎所有的专业 (DevOps) 经验中考虑以下内容-

  • 我可以在我的 Docker 容器中使用该文件
  • 所有要求都集中在一处
  • 如果我愿意,我可以在本地使用 venv 进行开发
  • Travis 可以从 requirements.txt 安装并在多个版本上进行测试,而无需使用 Tox
  • Setuptools 会自动处理,所以我的东西适用于 pip
  • 我可以通过 ECS、Kubernetes 等重用这些 Dockerfile(或部分)
  • 我可以在不使用 Docker 的情况下部署到 EC2
  • 我可以通过 pip 在本地安装包

HTH - 不要太拘泥于一项技术!

关于python - 容器内 conda 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46678454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com