【发布时间】:2022-01-25 09:19:41
【问题描述】:
当我在 docker 中运行时,我的简单烧瓶应用程序不会自动启动,尽管我已经正确添加了 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”时,我看不到烧瓶进程正在运行。所以我的问题是为什么下面的行在 Dockerfile 中不起作用?
CMD ["/usr/bin/python3", "/app/app.py"]
【问题讨论】:
-
是什么让您认为您的烧瓶应用程序没有运行?启动 docker 容器时会发生什么?而你希望发生什么?
-
当我启动容器并登录到 Ubuntu 容器然后在终端中检查“ps -eaf”时,我看到烧瓶应用程序没有运行。然后我使用 python3 /app/app.py 手动启动它,理想情况下 CMD ["/usr/bin/python3", "/app/app.py"] 应该在你运行容器后立即运行你的命令,但这不是正在发生。
-
请编辑您的问题以表明这一点。另外,当你向烧瓶服务器发出请求时会发生什么?
-
显然,当没有运行烧瓶服务器时,您会从网络浏览器收到错误消息。我什至不需要查看浏览器端。我的问题是为什么服务器一开始就没有运行?
-
仔细检查仍然是个好主意。