[PYTHON] Créer un serveur Flask avec Docker

J'avais besoin de créer un serveur Flask pour envoyer des données à Elasticsearch, donc je l'ai construit en utilisant docker-compose

Structure du répertoire

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

Première description de Dockerfile Configuration d'un fichier décrivant la version de python, le répertoire du projet et les bibliothèques requises

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

Ensuite, écrivez docker-compose.yml Décrit le paramètre de port et la commande d'exécution du flask --with-threds est une option pour définir s'il faut s'exécuter dans plusieurs threads

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

Description de requirements.txt Décrivez la bibliothèque à installer avec pip

requirements.txt


flask
elasticsearch

Décrivez le serveur réel

app.py


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

app = Flask(__name__)
#Nom d'hôte, de port et d'index Elasticsearch
host = "192.168.xx"
port = "9200"
index_name = "XXXXX"

@app.route('/', methods=['POST']) #Entrez le chemin de l'URL et autorisez uniquement POST
def insert():
    data = json.loads(request.data) #Obtenez les données jetées dans le ballon
        doc = {
            "location" : data["location"]
        }
    es = Elasticsearch(
        hosts = [{'host': host, 'port' : port}]
    )
    res = es.index(index=index_name, body=doc)

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

Allez dans le répertoire fl / et

$ docker-compose up -d --build

Commencer avec

Si vous souhaitez le supprimer une fois pour une correction, etc.

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

L'image peut être supprimée avec

Recommended Posts

Créer un serveur Flask avec Docker
Configurer un serveur Samba avec Docker
Créer un service Web avec Docker + Flask
Serveur TFTP avec Docker
Serveur proxy avec Docker
Démarrez un serveur Web Python simple avec Docker
Lancer un serveur Web avec Python et Flask
J'ai créé un serveur syslog prêt à l'emploi avec Play with Docker
Un serveur qui fait écho aux données POSTées avec flask / python
Créer une application Web avec Flask ②
Créer un arbre déterminé avec scikit-learn
Créer un fichier deb avec Docker
Persistez le serveur d'API Flask avec Forever
Déployer l'application Django avec Docker
Créer une application Web avec Flask ①
Créer une application Web avec Flask ③
Créer une application Web avec Flask ④
Développement d'applications avec Docker + Python + Flask
Créez un simulateur de gacha rare avec Flask
Obtenez un environnement local pour DynamoDB avec Docker
Raclons un site dynamique avec Docker
Créer un écran de connexion dans Django all auth
Créez une application Web simple avec Flask
[Linux] Créer un environnement Jenkins avec Docker
Exécutez une application Web Python avec Docker
Lancez l'application Flask avec Docker sur Heroku
[Linux] Construction de l'environnement Docker avec Amazon Linux 2
Une série d'ingénieurs d'infrastructure amateurs touchant Django avec Docker (2): création d'un modèle
Créez un environnement CentOS Linux 8 avec Docker et démarrez Apache HTTP Server
[GCP] Procédure de création d'une application Web avec Cloud Functions (Python + Flask)
Démarrez un serveur http temporaire localement avec Pytest
Créer un serveur local avec une commande sur une seule ligne [Mac]
Configurer un serveur HTTPS simple avec asyncio
Configurer un serveur local avec le téléchargement Go-File-
[Piyopiyokai # 1] Jouons avec Lambda: création d'une fonction Lambda
Créez un simple générateur d'images par points avec Flask
Procédure de création d'un LineBot réalisé avec Python
[Python] Créer un environnement de développement Django avec Docker
Créer un babillard avec Heroku, Flask, SQL Alchemy
Serveur de jeu avec deux PC
Configurer un serveur local avec le téléchargement Go-File-
Un mémo lors de la création d'un environnement python avec miniconda
Commandes pour créer un environnement python3 avec virtualenv
Flux de création d'un environnement virtuel avec Anaconda
Monter le répertoire d'un autre serveur avec sshfs
Créer un serveur "Hello World" (HTTP) dans Tornado
Essayez de créer un problème FizzBuzz avec un programme shell
Made Mattermost Bot avec Python (+ Flask)
Mettez Docker dans Windows Home et exécutez un serveur Web simple avec Python
Jusqu'à ce que Python soit installé avec pythonbrew et que Flask s'exécute sur le serveur WSGI
Créer un serveur local GIF animé avec Python + Flask
Je veux faire la transition avec un bouton sur le ballon
4. Création d'un programme structuré
Retour sur la création d'un service Web avec Django 1
Format A4 avec python-pptx
Configurer un serveur de ressources Minecraft (Spigot) via docker (2)
Serveur à grande échelle réalisé avec Nginx + uWSGI + Flask + Ubuntu (installation)
Journal de sortie vers la console avec Flask + Nginx sur Docker