[PYTHON] Erstellen eines Flask-Servers mit Docker

Ich musste einen Flask-Server erstellen, um Daten an Elasticsearch zu senden, also habe ich ihn mit Docker-Compose erstellt

Verzeichnisaufbau

fl/  ├ Dockerfile  ├ docker-compose.yml  └ src/    ├app.py    └requirements.txt

Erstbeschreibung von Dockerfile Einrichten einer Datei, die die Python-Version, das Projektverzeichnis und die erforderlichen Bibliotheken beschreibt

FROM python:3.6
ARG project_dir=/projects/
ADD src/requirements.txt $project_dir
WORKDIR $project_dir
RUN pip install -r requirements.txt

Als nächstes schreiben Sie docker-compose.yml Beschreibt die Porteinstellung und den Befehl zum Ausführen des Kolbens --with-threds ist eine Option, um festzulegen, ob in mehreren Threads ausgeführt werden soll

docker-compose.yml


version: '3'

services:
  flask:
    build: .
    ports:
      - "6000:6000"
    volumes:
      - "./src:/projects"
    tty: true
    environment:
      TZ: Asia/Tokyo
    command: flask run --host 0.0.0.0 --port 6000 --with-threads

Beschreibung der Anforderungen.txt Beschreiben Sie die Bibliothek, die mit pip installiert werden soll

requirements.txt


flask
elasticsearch

Beschreiben Sie den tatsächlichen Server

app.py


from flask import Flask, jsonify, request
from elasticsearch import Elasticsearch
from datetime import datetime

app = Flask(__name__)
#Host-, Port- und Indexname von Elasticsearch
host = "192.168.xx"
port = "9200"
index_name = "XXXXX"

@app.route('/', methods=['POST']) #Geben Sie den URL-Pfad ein und lassen Sie nur POST zu
def insert():
    data = json.loads(request.data) #Holen Sie sich die Daten in den Kolben geworfen
        doc = {
            "location" : data["location"]
        }
    es = Elasticsearch(
        hosts = [{'host': host, 'port' : port}]
    )
    res = es.index(index=index_name, body=doc)

if __name__ == '__main__':
    app.run()

Gehen Sie in das Verzeichnis fl / und

$ docker-compose up -d --build

Beginnen mit

Wenn Sie es einmal zur Korrektur fallen lassen möchten usw.

$ docker-compose down --rmi all --volumes

Bild kann mit gelöscht werden

Recommended Posts

Erstellen eines Flask-Servers mit Docker
Richten Sie mit Docker einen Samba-Server ein
Erstellen Sie einen Webdienst mit Docker + Flask
TFTP-Server mit Docker
Proxyserver mit Docker
Starten Sie mit Docker einen einfachen Python-Webserver
Starten Sie einen Webserver mit Python und Flask
Ich habe mit Play with Docker einen gebrauchsfertigen Syslog-Server erstellt
Ein Server, der POST-Daten mit flask / python wiedergibt
Erstellen einer Webanwendung mit Flask ②
Erstellen eines bestimmten Baums mit Scikit-Learn
Erstellen Sie eine Deb-Datei mit Docker
Behalten Sie den Flask API-Server für immer bei
Stellen Sie die Django-Anwendung mit Docker bereit
Erstellen einer Webanwendung mit Flask ①
Erstellen einer Webanwendung mit Flask ③
Erstellen einer Webanwendung mit Flask ④
Anwendungsentwicklung mit Docker + Python + Flask
Machen Sie einen seltenen Gacha-Simulator mit Flask
Holen Sie sich mit Docker eine lokale Umgebung für DynamoDB
Lassen Sie uns mit Docker eine dynamische Site kratzen
Erstellen eines Anmeldebildschirms in Django all auth
Erstellen Sie eine einfache Web-App mit Flasche
[Linux] Erstellen einer Jenkins-Umgebung mit Docker
Führen Sie eine Python-Webanwendung mit Docker aus
Starten Sie die Flask-Anwendung mit Docker auf Heroku
[Linux] Aufbau einer Docker-Umgebung mit Amazon Linux 2
Eine Reihe von Amateur-Infrastrukturingenieuren, die Django mit Docker berühren (2): Erstellen eines Modells
Erstellen Sie mit Docker eine CentOS Linux 8-Umgebung und starten Sie Apache HTTP Server
[GCP] Verfahren zum Erstellen einer Webanwendung mit Cloud-Funktionen (Python + Flask)
Starten Sie einen temporären http-Server lokal mit Pytest
Erstellen Sie einen lokalen Server mit einem einzeiligen Befehl [Mac]
Richten Sie einen einfachen HTTPS-Server mit Asyncio ein
Richten Sie einen lokalen Server mit Go-File-Upload ein.
[Piyopiyokai # 1] Spielen wir mit Lambda: Erstellen einer Lambda-Funktion
Erstellen Sie mit Flask einen einfachen Punktbildgenerator
Vorgehensweise zum Erstellen eines mit Python erstellten LineBot
[Python] Erstellen Sie mit Docker eine Django-Entwicklungsumgebung
Erstellen Sie ein Bulletin Board mit Heroku, Flask, SQL Alchemy
Spielen Sie den Server mit zwei PCs
Richten Sie einen lokalen Server mit Go-File-Download ein.
Ein Memo beim Erstellen einer Python-Umgebung mit Miniconda
Befehle zum Erstellen einer Python3-Umgebung mit virtualenv
Ablauf beim Erstellen einer virtuellen Umgebung mit Anaconda
Hängen Sie das Verzeichnis eines anderen Servers mit sshfs ein
Erstellen Sie in Tornado einen HTTP-Server (Hello World)
Versuchen Sie, ein FizzBuzz-Problem mit einem Shell-Programm zu erstellen
Mattermost Bot mit Python gemacht (+ Flask)
Stellen Sie Docker in Windows Home und führen Sie einen einfachen Webserver mit Python aus
Bis Python mit Pythonbrew installiert ist und Flask auf dem WSGI-Server ausgeführt wird
Erstellen Sie mit Python + Flask einen animierten lokalen GIF-Server
Ich möchte mit einem Knopf am Kolben übergehen
4. Erstellen eines strukturierten Programms
Rückblick auf die Erstellung eines Webdienstes mit Django 1
A4 Größe mit Python-Pptx
Richten Sie einen Minecraft-Ressourcenserver (Spigot) über Docker (2) ein.
Full-Scale-Server mit Nginx + uWSGI + Flask + Ubuntu (Installation)
Ausgabeprotokoll an die Konsole mit Flask + Nginx auf Docker