gpt4 book ai didi

python - 创建在 python virtualenv 中执行命令的 docker 镜像

转载 作者:行者123 更新时间:2023-12-02 18:41:05 27 4
gpt4 key购买 nike

我有以下问题...

我想创建一个在其上创建 python 虚拟环境的 docker 镜像。然后我希望能够做以下两件事:

  • 运行docker run -it <image>在此启动交互式外壳
    虚拟环境。
  • 运行docker run <image> <command> (例如python --version)即
    在所述虚拟环境中执行

  • 我尝试了很多东西,但似乎我无处可去。我的 Dockerfile 目前看起来像这样:
    FROM ubuntu:16.04
    RUN apt-get -y update && apt-get install -y python3 python-pip
    RUN pip install virtualenv
    RUN virtualenv -p python3.5 /venvs/myenv3.5
    RUN . /venvs/myenv3.5/bin/activate && pip install numpy

    我尝试弄乱 ENTRYPOINT 和 CMD,但我没有得到任何结果。通过添加以下行: CMD . /venvs/myenv3.5/bin/activate; /bin/bash;我能够在环境中启动交互式 bash,但运行 docker run python --version 表明在所述环境中没有执行类似的命令。

    有没有办法做到这一点?

    最佳答案

    您可以使用 /venvs/myenv3.5/bin/python可执行而不是主要的python .这将执行 python在那个虚拟环境中。你可以这样做 ENV PATH /venvs/myenv3.5/bin:$PATH正如您在评论中提到的或使用 Dockerfile 中的入口点:

    ENTRYPOINT /venvs/myenv3.5/bin/python

    现在,当您运行镜像时,您的 virtualenv python默认会执行:
    $ docker run -it <image> --version
    Python 3.5.2

    如果你需要在这个图像上获得一个 shell,你可以覆盖 entrypont:
    $ docker run -it --entrypoint /bin/bash <image>
    / #

    您也可以使用 /venvs/myenv3.5/bin/pip将东西安装到 virtualenv 中:
    RUN /venvs/myenv3.5/bin/pip install numpy

    关于python - 创建在 python virtualenv 中执行命令的 docker 镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41034065/

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