【问题标题】:Miniconda with dockerfile, how to use the conda environmentMiniconda 与 dockerfile,conda 环境如何使用
【发布时间】:2019-05-02 11:12:00
【问题描述】:

目标:从 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 

它不在我的环境中运行。

这里有一些丑陋的 hack:https://github.com/ContinuumIO/docker-images/issues/89 实际上不起作用,因为您在进入容器或执行另一个 RUN 命令时使用了新的 shell 会话,因此您必须使用 && 连接命令(丑陋)。

理想情况下,我想从 environment.ymlglobally 安装我所有的 conda 包,但显然我做不到。

【问题讨论】:

  • 嗨 Claudiu,你确定你的 Dockerfile 工作正常吗?您的最后一个命令应将环境文件称为 /code/environment.yml。你可以发布你运行的 docker 命令吗?
  • 链接的问题仍然开放。
  • @Mihai 是的,对不起,我有一个 WORKDIR /code/,为简洁起见,我没有包含它
  • 您能编辑帖子并添加完整的 Dockerfile 吗?还有“RUN conda ...”这一行,运行成功了吗?
  • @Mihai 更新,是的,运行成功

标签: python docker anaconda conda


【解决方案1】:

你必须告诉 docker conda 管理的 python 版本在哪里,而在 docker 内部这是通过 conda run 完成的

conda run --no-capture-output -n myenv python run.py

来源 https://pythonspeed.com/articles/activate-conda-dockerfile/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-04
    • 2019-02-22
    • 1970-01-01
    • 2018-10-21
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    相关资源
    最近更新 更多