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