Python 带有 Docker 的 Virtualenv HTTP 服务器

Python Virtualenv HTTP Server With Docker

正在尝试托管 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"]

请帮忙。

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

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

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

二、运行宁命令:

RUN python3 -m http.server &

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

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