在python virtualenv中创建执行命令的docker映像
我有以下问题 我想创建一个docker映像,在该映像上创建python虚拟环境。然后我想做以下两件事:在python virtualenv中创建执行命令的docker映像,python,ubuntu,docker,virtualenv,Python,Ubuntu,Docker,Virtualenv,我有以下问题 我想创建一个docker映像,在该映像上创建python虚拟环境。然后我想做以下两件事: 运行docker Run-it,在这个窗口中启动一个交互式shell 虚拟环境 运行docker Run(例如python--version),即 在所述虚拟环境中执行 我尝试了很多东西,但似乎都一事无成。我的Dockerfile当前看起来如下所示: FROM ubuntu:16.04 RUN apt-get -y update && apt-get install -y
- 运行
,在这个窗口中启动一个交互式shell 虚拟环境docker Run-it
- 运行
(例如python--version),即 在所述虚拟环境中执行docker Run
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——版本表明类似的命令不会在所述环境中执行
有办法做到这一点吗?您可以使用/venvs/myenv3.5/bin/python
可执行文件而不是主python
。这将在该虚拟环境中执行python
。您可以通过执行注释中提到的ENV PATH/venvs/myenv3.5/bin:$PATH
或使用Dockerfile
中的入口点来执行此操作:
ENTRYPOINT /venvs/myenv3.5/bin/python
现在,当您运行映像时,您的virtualenvpython
将默认执行:
$ docker run -it <image> --version
Python 3.5.2
看看我现在是怎么做的(不幸的是不是很优雅的xD):ENV PATH:$PATH
如果有人有更干净的解决方案,请告诉我。
$ docker run -it --entrypoint /bin/bash <image>
/ #
RUN /venvs/myenv3.5/bin/pip install numpy