如何使dockerized Flask应用程序将输出写入文件?

戴维德·菲科(Davide Fiocco)

我试图通过简单地将它们写入文本文件的方式,使托管了(dockerized)Flask应用程序“日志”请求的服务器。

我的docker-compose.yml样子

version: '2'

services:
  writer:
    build: writer/
    ports: 
      - 5000:5000
    container_name: writer

writer目录中,我具有以下writer.py文件,文件应用于获取请求并将其写入本地文件feedback.txt

from flask import Flask, request, jsonify

app = Flask(__name__, static_url_path='')

@app.route('/feedback', methods=['POST']) 
def log_feedback():
    with open("feedback.txt","a") as fo:
        fo.write(request.data.decode("utf-8"))
        print(request.data.decode("utf-8"))
        fo.write('\n')
    return 'Got it!'

if __name__ == '__main__':
    app.run(host='0.0.0.0', debug = False)

供参考,我Dockerfile在同一个writer目录中是:

FROM python:3.6-slim
WORKDIR /app
ADD . /app
RUN pip install -r requirements.txt
ENTRYPOINT [ "python", "writer.py" ]

requirements.txt 很简单

flask

样品要求是

curl -H "Content-Type:application" -X POST -d '{"Content":"Hello world"}' http://0.0.0.0:5000/feedback

不幸的是,没有feedback.txt本地写入(例如在容器外部)。您能否向我暗示我应该执行的修改docker-compose.yml(例如在卷中进行),以便feedback.txt在服务器上获得书面内容并可以访问?

托马斯·萨布利克

您必须在docker-compose.yml中添加一个卷。容器中的路径应包含包含写入文件的文件夹。本地文件夹的路径应包含系统上要查看写入文件的文件夹。

version: '2'

services:
  writer:
    build: writer/
    ports: 
      - 5000:5000
    container_name: writer
    volumes:
      - /PATH/TO/YOUR/LOCAL_FOLDER:/PATH/TO/FOLDER/IN/CONTAINER

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Pytest测试dockerized flask应用程序?

如何将Spark Streaming应用程序的输出写入单个文件

无法写入kubernetes中部署的dockerized flask应用程序的静态目录中的文件

如何从 UWP 应用程序将文件写入 Hololens

如何连接Dockerized ASP.NET Core应用程序-> Dockerized PostgreSQL?

如何降低 dockerized .Net Core 应用程序的大小?

如何连接到dockerized Sinatra应用程序

如何使用 PyCharm 调试 dockerized Django 应用程序

如何从 dockerized spring boot 应用程序连接 docker db?

如何使用相同的DATABASE_HOST将django应用程序连接到dockerized django和非dockerized django的dockerized postgres db

如何将托管在 aws 上的 dockerized 应用程序从端口 3000 映射到根 url?

如何将Dockerized Symfony应用程序部署到Digital Ocean

如何将本地托管的 Django 应用程序连接到 Dockerized Postgres 数据库

如何从dockerized ELK清除日志文件?

如何Dockerise前端应用程序以与已经被dockerized的api应用程序通信

如何通过Google App Engine中的应用程序将文件写入Google Cloud Storage?

如何将 unicode 写入 Visual Studio 输出选项卡以进行调试(不是控制台应用程序)?

如何将控制台输出写入多线程 MVC 建模应用程序中的控件?

如何使用python请求将文件上传到Flask应用程序

Flask应用程序-如何将javascript文件链接到网站

如何从flask模板将json文件内容作为应用程序/json发布?

如何读取我的应用程序logcat并写入文件?

如何设置Dockerized应用程序与Elastic Beanstalk的持续集成?

如何为dockerized nodeJS应用程序设置正确的组成员

如何查看我刚刚在 Azure 上设置的 dockerized 容器应用程序?

如何在 dockerized Rails 应用程序中创建 Mysql 测试数据库?

如何通过在 Azure AppService 上运行的 Dockerized Node 应用程序中的 sameSite: none?

如何更改python程序以将输出写入文件?

ACRA 4.9.0:如何将ACRA报告写入文件(在“应用程序数据”文件夹中)