當我在 docker 中運行時,我的簡單 Flask 應用程式不會自動啟動,盡管我已經正確添加了 CMD 命令。我可以從容器外殼手動使用 python3 /app/app.py 運行燒瓶。因此,代碼或命令沒有問題
FROM ubuntu:latest
RUN apt-get update
RUN apt-get install -y gcc libffi-dev libssl-dev
RUN apt-get install -y libxml2-dev xmlsec1
RUN apt-get install -y python3-pip python3-dev
RUN pip3 --no-cache-dir install --upgrade pip
RUN rm -rf /var/lib/apt/lists/*
RUN mkdir /app
WORKDIR /app
COPY . /app
RUN pip3 install -r requirements.txt
EXPOSE 5000
CMD ["/usr/bin/python3", "/app/app.py"]
我將 docker 容器作為
docker run -it okta /bin/bash
當我登錄到 docker 容器并在容器的 Ubuntu shell 上運行“ps -eaf”時,我沒有看到 Flask 行程正在運行。所以我的問題是為什么下面的行在 Dockerfile 中不起作用?
CMD ["/usr/bin/python3", "/app/app.py"]
uj5u.com熱心網友回復:
運行您的 docker 容器并傳遞命令/bin/bash會覆寫 Dockerfile 中的 CMD ["/usr/bin/python3", "/app/app.py"]。
CMD vs ENTRYPOINT 解釋在這里
嘗試將 Dockerfile 的最后一行更改為
ENTRYPOINT ["/usr/bin/python3", "/app/app.py"]
不要忘記在更改后重建您的影像。
或者...您可以省略 docker run 命令末尾的 /bin/bash 并查看您的 app.py 是否成功啟動。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/394247.html
上一篇:Docker映像“節點”在我可以訪問它之前終止(使用azurecli)
下一篇:構建Docker鏡像但不保存?
