创建运行python http服务器以显示html文件的dockerfile

时间:2018-06-25 05:42:20

标签: html python-2.7 docker dockerfile

我有一个目录,其中包含一个简单的HTML文件(名称:index.html),该文件显示一些基本文本。我运行python命令:

python -m SimpleHTTPServer 7000

在同一目录中的端口7000上运行服务器,以在浏览器中显示页面。

现在,我希望能够将这一过程进行docker化,并需要有关此方面的帮助。

基本上,dockerfile应该使用此python命令在7000端口运行服务器,然后在浏览器中显示html。

我的想法:

FROM ubuntu:14.04
COPY index.html
FROM python:latest
EXPOSE 80
CMD ["python SimpleHTTPServer 7000", "-m"]

此外,一旦完成,我将如何构建和运行该文件?

我很确定这是行不通的,但是由于我是新手,所以我不知道如何纠正它。

1 个答案:

答案 0 :(得分:3)

  

此外,一旦完成,我将如何构建和运行该文件?

你很近。几个指针:

  • 如果您使用python3,则必须使用http.server或单独安装SimpleHTTPServer
  • 如果您使用的是python 2.7,则不能以使用方式使用'latest'标记
  • 容器端口和所需的目标本地端口不相同

以下是python 3的Dockerfile变体形式:

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

和python 2.7:

FROM python:2.7
COPY index.html /
EXPOSE 7000
CMD python -m SimpleHTTPServer 7000

以及构建

docker build -t my-docker-image .

并运行命令:

run --rm -it --name my-docker-instance -p 80:7000 my-docker-image

运行后,您可以转到http://localhost,在其中获得容器的端口7000,前提是您的主机不在端口80上运行任何东西(如果需要,请重新映射)。

注意:

  • 使用最新图像可以进行开发,但在生产中存在问题
  • 工作目录设置为root,也许您想适当地放置文件
  • 可以在简单服务器上运行代码以进行开发

编辑: 我看到b0gusb击败了我:)