flask app 不是 运行 自动从 Dockerfile

flask app not running automatically from Dockerfile

当我在 docker 中 运行 时,我的简单 Flask 应用程序没有自动启动,尽管我已经正确添加了 CMD 命令。我可以使用 python3 /app/app.py 从容器 shell 手动 运行 烧瓶。因此,代码或命令没有问题

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” 时,我没有看到烧瓶进程 运行ning。所以我的问题是为什么下面的行在 Dockerfile 中不起作用?

CMD     ["/usr/bin/python3", "/app/app.py"]

运行 你的 docker 容器 and 传递命令 /bin/bash 正在覆盖 CMD ["/usr/bin/python3", "/app/app.py"] 在你的 Dockerfile 中。

CMD 与 ENTRYPOINT 解释 Here

尝试将 Dockerfile 的最后一行更改为

ENTRYPOINT ["/usr/bin/python3", "/app/app.py"]

不要忘记在更改后重建图像。

或者...您可以省略 docker 运行 命令末尾的 /bin/bash 并查看您的 app.py 是否成功启动。