当前位置: 首页 > 知识库问答 >
问题:

当docker启动参数为-d时,flask应用程序可以在docker控制台上打印,但当启动参数为-it[duplicate]时则不行

苏乐
2023-03-14

我有一个很简单的flask应用程序,没有任何操作,代码如下,只是为了测试:

from flask import Flask
app1 = Flask(__name__)
@app1.route('/', methods=['POST'])
def send():
    print(1111111111111111)
    a = "ok"
    print(1111111111111111)
    return a
app1.run(debug=False,host='0.0.0.0',port=8060)

然后我通过dockerfile,将他构建成一个图像:

From python:3.6.12
COPY ./a.py /usr/
RUN pip3 install -i https://mirrors.aliyun.com/pypi/simple/ flask
CMD python3 /usr/a.py

我的理解是,当我传递Docker run-p12345:8060-d image_name时,我通过下面的简单代码访问接口,我认为接口应该输出两行“111111111111”日志,但它不是

import requests

url="http://127.0.0.1:12345"
data = {
    "server_id": 1,
}
header = {
    "Content-Type": "application/json",
    "charset": "utf-8"
}
res = requests.post(url=url,json=data,headers=header)
print(res.text)

共有1个答案

柯默
2023-03-14

因为Python缓冲他们的输出,所以print不能正常工作。要禁用它,请将-u选项传递给Python

CMD python3 -u /usr/a.py

这个帖子帮助了我,也会帮助你。

Python应用程序在Docker-Stack溢出中独立运行时不会打印任何内容

 类似资料:
  • 我正在docker容器中运行一个简单的spring boot应用程序。在启动时,是否从或应用程序将始终在以下时间点挂起: 这里有一个问题,我只能在数字海洋(1CPU,1GB MEM)的Ubuntu 14.04盒子上重现这个,即使它在容器中运行。在我的本地机器上,一切都运行良好。 Dockerfile文件: 我尝试过的事情 给JVM更多内存(占机器总数的75%) 按这里建议的方式停止库 我能接触到的

  • 杀死应用程序并发送推送,它正在重定向到所需的活动后,处理这个推送,把应用程序放在后台并发送推送。它将恢复最后一个活动,但意向性附加为NULL。

  • 我想用Docker中的gunicorn运行Flask web服务应用程序。启动后,应用程序加载一个大型机器学习模型。 然而,当我在Docker中运行gunicorn时,我收到了以下超时,它只是不断地繁殖工人。 在Docker中将其作为烧瓶应用程序运行或从命令行运行带有(或不带有)Gunicorn的烧瓶应用程序都可以正常工作。如果我删除机器学习模型,它也适用于Gunicorn。 例如: 这是我与Fl

  • 我有一份Java申请。 应用程序有一个决定应用程序是否在启动时启动的设置。 目前,我通过在StartUp items文件夹中放置/删除快捷方式实现了这一点。 然而,我想知道是否有更好的方法来处理这种行为。 编辑 是的,是视窗。抱歉之前没有清除。 应用程序有一个UI,用户可以在其中触发操作,并且应用程序在运行时定期在后台运行一些任务。 @Peter,如何使用应用程序中的代码更改注册表?这种方法是否与

  • 问题内容: 通过我可以参数化这样的查询; 但是问题在于,如果a为None,则查询应如下所示; 因此,当查询可以为None或字符串时,查询应如何? 问题答案: 解决方案是使用ISO / ANSI标准-安全比较: 并非所有数据库都支持此功能,因此您还可以使用: 如果您不愿意两次传递参数,则可以在子句中包含它:

  • 问题内容: 我有一个Java应用程序。 该应用程序具有一个设置,该设置决定该应用程序是否在启动时启动。 目前,我可以通过在“启动项目”文件夹中放置/删除快捷方式来实现此目的。 但是,我想知道是否有更好的方法来处理此行为。 编辑 是的,它是Windows。抱歉,之前没有清除该内容。 该应用程序具有一个用户可以在其中触发动作的UI,并且该应用程序在运行时会定期在后台运行一些任务。 @Peter,如何在