繁体   English   中英

在Docker中运行一个简单的Web服务器?

[英]Running a simple webserver in Docker?

我正在尝试构建一个提供静态html的简单docker容器。 我有以下Dockerfile:

FROM    ubuntu

# Install python3
RUN     apt-get update
RUN     apt-get install -y python3

# Copy html
ADD static/ /src
RUN cd /src

# Run http server on port 8080
EXPOSE  8080
CMD ["python3", "-m http.server 8080"

但是,当我构建+运行它时,我收到以下错误:

/usr/bin/python3: No module named  http

我通过交互式shell尝试了相同的步骤,它们工作正常,但是一旦我使用Dockerfile就失败了。

我认为您的CMD语法错误。 我刚试过,它工作正常:

FROM    ubuntu

# Install python3
RUN     apt-get update
RUN     apt-get install -y python3

# Copy html
ADD static/ /src
RUN cd /src

# Run http server on port 8080
EXPOSE  8080
CMD ["python3", "-m", "http.server", "8080"]

我遇到了一个问题,接受了网络问题阻止我在公司网络上运行apt-get update的问题。

但是,以下Dockerfile工作,我相信它比ubuntu映像更轻量级,就像共享静态html文件一样简单。

FROM python:3.6.0-alpine
ADD static/ /src
WORKDIR /src
EXPOSE  8080
ENTRYPOINT ["python3", "-m", "http.server", "8080"]

此外,由于它与原始问题有关,以下也不会起作用吗? 我不确定我理解将命令分解为数组的好处。

CMD python3 -m http.server 8080

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM