首页 > 解决方案 > 带有 Docker 的 Python Virtualenv HTTP 服务器

问题描述

尝试托管 python http 服务器并且工作正常。

FROM python:latest
COPY index.html /
CMD python3 -m http.server

但是在尝试使用 python virtualenv 时,遇到了问题。

FROM python:3
COPY index.html .
RUN pip install virtualenv
RUN virtualenv --python="python3" .virtualenv
RUN .virtualenv/bin/pip install boto3
RUN python3 -m http.server &
CMD ["/bin/bash"]

请帮忙。

标签: pythonpython-3.xdockerdockerfilevirtualenv

解决方案


我只想指出,virtualenv在 docker 容器中使用可能是多余的。

使用 docker,您可以封装您的一个特定应用程序及其依赖项(在您的情况下为库、框架、boto3),而不是在您的本地计算机上,您可能正在开发多个应用程序,每个应用程序具有不同的依赖项。

因此,我建议再次考虑 docker 中 virtualenv 的必要性。

二、运行命令:

RUN python3 -m http.server &

在后台也是不好的做法。您想CMD在前台使用命令运行它,因此它将作为第一个进程(PID 1)运行。然后它将接收所有 docker 信号,并随着容器启动自动启动:

CMD ["virtualenv/bin/python3", "-m", "http.server"]

推荐阅读