Browse Source

feat: all files added

master
QuentinN42 7 months ago
commit
c140a12867
Signed by: number42 GPG Key ID: 2CD7D563712B3A50
  1. 11
      Dockerfile
  2. 33
      README.md
  3. 28
      app.py
  4. 2
      requirements.txt

11
Dockerfile

@ -0,0 +1,11 @@
FROM python:3.10
WORKDIR /app
COPY requirements.txt /app/requirements.txt
RUN pip install -r requirements.txt
COPY app.py /app/app.py
CMD ["python", "/app/app.py"]

33
README.md

@ -0,0 +1,33 @@
# Exemple d'app avec docker
[Installation de docker](https://docs.docker.com/engine/install/).
Déploiement de deux apps:
- Une base de données [mongoDB](https://hub.docker.com/_/mongo).
- Une app [python](https://hub.docker.com/_/python) qui vas se connecter a cette base de données.
## Etape 1 : setup de la base de données
On vas dabord télécharger l'image de la base de données.
docker pull mongo
En suivant la doc, il faut deux variables :
- `MONGO_INITDB_ROOT_USERNAME`
- `MONGO_INITDB_ROOT_PASSWORD`
On peut donc la lancer avec la commande suivante :
docker run -d --name mongo -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=pass mongo
## Etape 2 : setup de l'app python
On vas créer le conteneur de l'app python.
docker build -t app .
Puis on le lance :
docker run -e MONGO_URL='mongodb://root:pass@172.17.0.2:27017/' -p 8080:8080 app

28
app.py

@ -0,0 +1,28 @@
""" Simple flask app"""
from flask import Flask, request # type: ignore
import pymongo # type: ignore
from os import getenv
from json import loads
if getenv('MONGO_URL') is None:
raise EnvironmentError('MONGO_URL not set')
app = Flask(__name__)
db = pymongo.MongoClient(getenv('MONGO_URL')).test.col
@app.route('/list', methods = ['GET'])
def home():
return {"data": [x["data"] for x in db.find()]}
@app.route('/add', methods = ['POST'])
def add():
data = loads(request.get_data(as_text=True))["data"]
db.insert_one({"data": data})
return {"message": "success", "data": data}
if __name__ == '__main__':
app.run(host="0.0.0.0", port=8080)

2
requirements.txt

@ -0,0 +1,2 @@
flask
pymongo
Loading…
Cancel
Save