【发布时间】:2016-12-08 07:30:59
【问题描述】:
我有以下问题...
我想创建一个在其上创建 python 虚拟环境的 docker 映像。那么我希望能够做到以下两件事:
- 运行
docker run -it <image>在此启动交互式shell 虚拟环境。 - 运行
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 显示类似的命令不会在所述环境中执行。
有没有办法做到这一点?
【问题讨论】:
-
这就是我现在的做法(不幸的是不是很优雅 xD):
ENV PATH <path to venv bin>:$PATH如果有人有更清洁的解决方案,请告诉我。
标签: python ubuntu docker virtualenv