python - Miniconda 与 dockerfile,conda 环境如何使用
问题描述
目标:从 miniconda 创建一个 docker 镜像,它将安装我所有的依赖项,然后为 django 和其他包运行一些命令。此外,每次有人 bin/bash 进入容器时,它都应该从那些可用的包开始,而无需我添加入口点并在那里进行 env hack。
Dockerfile:
FROM continuumio/miniconda3
ADD environment.yml /code/
WORKDIR /code/
RUN conda env create -f environment.yml # successful
RUN python test/manage.py 8000 # fails, no dependencies like pandas installed
但是现在我被卡住了,说我想在创建的环境中运行一些命令:
RUN python manage.py runserver
它不在我的环境中运行。
这里有一些丑陋的黑客:https ://github.com/ContinuumIO/docker-images/issues/89实际上不起作用,因为当您进入容器或执行另一个 RUN 命令时,您正在使用新的 shell 会话,所以您有用 && 连接命令(丑陋)。
理想情况下,我想从 environment.yml全局安装我所有的 conda 包,但显然我不能这样做。
解决方案
你必须告诉 docker conda 管理的 python 版本在哪里,并且在 docker 内部这是通过conda run
conda run --no-capture-output -n myenv python run.py
来源 https://pythonspeed.com/articles/activate-conda-dockerfile/
推荐阅读
- terraform - Terraform - 从资源的元数据属性创建输出
- jestjs - 在 jest.mock 中需要常量
- angular - 角度材质 - DateRangePicker - 禁用/启用
- markdown - Sphinx Recommonmark CommonMarkParser 未检测到 URL 链接
- python - Django - 无法在页面上显示值
- python - 将geojson文件加载到django数据库中
- r - knitr 更改摘要输出颜色
- docker-compose - Spring cloud gateway 在使用 docker-compose 运行时给出 500 错误 finishConnect(..) failed: Connection refused: localhost/127.0.0.1:8083
- reactjs - 无法在 Outlook Web 加载项项目中安装流畅的 UI 反应
- hunspell - Hunspell 中额外标志的怪癖