python - 带有 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"]
请帮忙。
解决方案
我只想指出,virtualenv
在 docker 容器中使用可能是多余的。
使用 docker,您可以封装您的一个特定应用程序及其依赖项(在您的情况下为库、框架、boto3),而不是在您的本地计算机上,您可能正在开发多个应用程序,每个应用程序具有不同的依赖项。
因此,我建议再次考虑 docker 中 virtualenv 的必要性。
二、运行命令:
RUN python3 -m http.server &
在后台也是不好的做法。您想CMD
在前台使用命令运行它,因此它将作为第一个进程(PID 1)运行。然后它将接收所有 docker 信号,并随着容器启动自动启动:
CMD ["virtualenv/bin/python3", "-m", "http.server"]
推荐阅读
- python - 如何在excel中根据时间范围(日期和时间)查找缺失的数据?
- r - SEM(结构方程模型)调节中介但返回“信息矩阵无法倒置警告”
- php - Codeignitor 代码在实时服务器上给出未定义的属性错误,但在本地主机上没有
- python - 将随机值添加到多个列表
- excel - 您如何在每个单元格的范围内对文本的某些部分加下划线、粗体和斜体?
- android - 如何在android布局textview中设置大整数?
- rust - 在 Rust 中,我在哪里可以找到结构的方法实现的参考?
- javascript - 如何在 Vuetify 2.0 中使用带有 v-file-input 标签的 v-tooltip?
- spring - Spring Boot Rest Controller - 是否可以在处理请求之前使用自定义注释来过滤请求?
- python - 如何在 Spark 中读取压缩的 avro 文件(.gz)?