[英]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.