簡體   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