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 是否成功启动。
当我在 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 是否成功启动。